- 2011 - A trip through the Graphics Pipeline 2011
- 2015 - Life of a triangle - NVIDIA's logical pipeline
- 2015 - Render Hell 2.0
- 2016 - How bad are small triangles on GPU and why?
- 2017 - GPU Performance for Game Artists
- 2019 - Understanding the anatomy of GPUs using Pokémon
- 2020 - GPU ARCHITECTURE RESOURCES
void Save_camera_image(Camera cam, string path){ | |
// set render target to target texture | |
var currentRT = RenderTexture.active; | |
RenderTexture.active = cam.targetTexture; | |
// Make a new texture and read the active Render Texture into it. | |
Texture2D image = new Texture2D(cam.targetTexture.width, cam.targetTexture.height); | |
image.ReadPixels(new Rect(0, 0, cam.targetTexture.width, cam.targetTexture.height), 0, 0); | |
image.Apply(); |
import { getInitialState, syncLocalStorageWithRedux } from './util-localStorage' | |
const reduxStorageKey = 'my-application:' | |
const ONE_SECOND = 1000 | |
const ONE_MINUTE = ONE_SECOND * 60 | |
const ONE_HOUR = ONE_MINUTE * 60 | |
const ONE_DAY = ONE_HOUR * 24 | |
const ONE_YEAR = ONE_DAY * 365 | |
// create a white list. key is the redux store key, and lifeSpan is |
cmake_minimum_required(VERSION 3.9) | |
if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) | |
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" | |
CACHE STRING "") | |
message(" [INFO] VCPKG CMAKE_TOOLCHAIN_FILE = ${CMAKE_TOOLCHAIN_FILE}") | |
endif() | |
#======= Global Project Configuration =========# |
// is-iphone-x.js | |
import { Dimensions, Platform } from 'react-native'; | |
export function isIphoneX() { | |
const dim = Dimensions.get('window'); | |
return ( | |
// This has to be iOS | |
Platform.OS === 'ios' && |
/** | |
* Deep copy function for TypeScript. | |
* @param T Generic type of target/copied value. | |
* @param target Target value to be copied. | |
* @see Source project, ts-deepcopy https://github.com/ykdr2017/ts-deepcopy | |
* @see Code pen https://codepen.io/erikvullings/pen/ejyBYg | |
*/ | |
export const deepCopy = <T>(target: T): T => { | |
if (target === null) { | |
return target; |
# Blender v2.76 (sub 0) OBJ File: '' | |
# www.blender.org | |
mtllib cube.mtl | |
o Cube | |
v 1.000000 -1.000000 -1.000000 | |
v 1.000000 -1.000000 1.000000 | |
v -1.000000 -1.000000 1.000000 | |
v -1.000000 -1.000000 -1.000000 | |
v 1.000000 1.000000 -0.999999 | |
v 0.999999 1.000000 1.000001 |
<!-- | |
<form autocomplete="off"> will turn off autocomplete for the form in most browsers | |
except for username/email/password fields | |
--> | |
<form autocomplete="off"> | |
<!-- fake fields are a workaround for chrome/opera autofill getting the wrong fields --> | |
<input id="username" style="display:none" type="text" name="fakeusernameremembered"> | |
<input id="password" style="display:none" type="password" name="fakepasswordremembered"> | |
#include <iostream> | |
#include <fstream> | |
#include <vector> | |
#include <string> | |
#include <algorithm> | |
#include <chrono> | |
#include <functional> | |
#define GLFW_INCLUDE_VULKAN | |
#include <GLFW/glfw3.h> |
Despite being derived from classical MVC pattern JavaScript and the environment it runs in makes Javascript MVC implementation have its own twists. Lets see how typical web MVC functions and then dive into simple, concrete JavaScript MVC implementation.
Typical server-side MVC implementation has one MVC stack layered behind the singe point of entry. This single point of entry means that all HTTP requests, e.g. http://www.example.com or http://www.example.com/whichever-page/ etc., are routed, by a server configuration, through one point or, to be bold, one file, e.g. index.php.
At that point, there would be an implementation of Front Controller pattern which analyzes HTTP request (URI at first place) and based on it decides which class (Controller) and its method (Action) are to be invoked as a response to the request (method is name for function and member is name for a variable when part of the class/object).