- Advanced DirectX12 graphics and performance | Max McMullen, Microsoft video
- Code clinic - How to Write Code the Compiler Can Actually Optimize | Mike Acton, Engine Director, Insomniac Games slideshare
- Destiny - Six years in the making | Chris Butcher, Bungie video
- Fast Iteration for Far Cry 4 - Optimizing Key Parts of the Dunia Pipeline | Remi Quenin, Engine Architect, Ubisoft pptx
- More on Vulkan and SPIR-V - The future of high-performance graphics | Khronos Group pdf video
- Parallelizing the Naughty Dog engine using fibers | Ch
| // smallgdpt: a simple implementation of gradient domain path tracing | |
| // https://mediatech.aalto.fi/publications/graphics/GPT/ | |
| // adapted from smallpt by Kevin Beason http://www.kevinbeason.com/smallpt/ | |
| // and a screened poisson solver by Pravin Bhat http://grail.cs.washington.edu/projects/screenedPoissonEq/ | |
| // to build, type: g++ -o smallgdpt -fopenmp -O3 smallgdpt.cpp -L/usr/local/lib -lm -lfftw3 | |
| // you will need fftw3 http://www.fftw.org/ to compile | |
| // usage: ./smallgdpt [number of samples per pixel] | |
| #include <fftw3.h> | |
| #include <math.h> | |
| #include <stdlib.h> |
- install jspm beta:
npm install -g jspm@beta - set up your project:
jspm init - install dependencies:
jspm install angular2 reflect-metadata zone.js es6-shim
This will create a jspm_packages folder, and a config.js file.
Open the config.js file - this file manages options for the System.js loader - tweak it as appropriate
| import React, { PropTypes } from 'react'; | |
| import { TransitionMotion, spring } from 'react-motion'; | |
| /** | |
| * One example of using react-motion (0.3.0) within react-router (v1.0.0-rc3). | |
| * | |
| * Usage is simple, and really only requires two things–both of which are | |
| * injected into your app via react-router–pathname and children: | |
| * | |
| * <RouteTransition pathname={this.props.pathname}> |
| class TranslucentWin:NSWindow, NSApplicationDelegate, NSWindowDelegate{ | |
| /** | |
| * | |
| */ | |
| override init(contentRect: NSRect, styleMask aStyle: Int, backing bufferingType: NSBackingStoreType, `defer` flag: Bool) { | |
| super.init(contentRect: Win.sizeRect, styleMask: NSTitledWindowMask|NSResizableWindowMask|NSMiniaturizableWindowMask|NSClosableWindowMask|NSFullSizeContentViewWindowMask, backing: NSBackingStoreType.Buffered, `defer`: false) | |
| self.contentView!.wantsLayer = true;/*this can and is set in the view*/ | |
| self.backgroundColor = NSColor.greenColor().alpha(0.2) | |
| self.opaque = false | |
| self.makeKeyAndOrderFront(nil)//moves the window to the front |
| // routes.js | |
| const routes = [ | |
| { | |
| path: '/', | |
| component: Home, | |
| exact: true | |
| }, | |
| { | |
| path: '/gists', | |
| component: Gists |
@tracked is a decorator for Preact that makes working with state values no different than properties on your component instance.
It's one 300 byte function that creates a getter/setter alias into state/setState() for a given key, with an optional initial value. The "magic" here is simply that it works as a property decorator rather than a function, so it appears to integrate directly into the language.
tracked has no dependencies and works with any component implementation that uses this.state and this.setState().
For a brief user-level introduction to CMake, watch C++ Weekly, Episode 78, Intro to CMake by Jason Turner. LLVM’s CMake Primer provides a good high-level introduction to the CMake syntax. Go read it now.
After that, watch Mathieu Ropert’s CppCon 2017 talk Using Modern CMake Patterns to Enforce a Good Modular Design (slides). It provides a thorough explanation of what modern CMake is and why it is so much better than “old school” CMake. The modular design ideas in this talk are based on the book [Large-Scale C++ Software Design](https://www.amazon.de/Large-Scale-Soft
| // TransientFuction: A light-weight alternative to std::function [C++11] | |
| // Pass any callback - including capturing lambdas - cheaply and quickly as a | |
| // function argument | |
| // | |
| // Based on: | |
| // https://deplinenoise.wordpress.com/2014/02/23/using-c11-capturing-lambdas-w-vanilla-c-api-functions/ | |
| // | |
| // - No instantiation of called function at each call site | |
| // - Simple to use - use TransientFunction<> as the function argument | |
| // - Low cost: cheap setup, one indirect function call to invoke |
