- 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
#include <string> | |
#include <string_view> | |
struct zstring_view : public std::string_view { | |
zstring_view() {} | |
zstring_view(std::string_view s) = delete; | |
zstring_view(const char* s) : std::string_view(s) {} | |
zstring_view(const std::string& s) : std::string_view(s) {} | |
operator const char* ()const { return data(); } |
function(print_all_targets DIR) | |
get_property(TGTS DIRECTORY "${DIR}" PROPERTY BUILDSYSTEM_TARGETS) | |
foreach(TGT IN LISTS TGTS) | |
message(STATUS "Target: ${TGT}") | |
# TODO: Do something about it | |
endforeach() | |
get_property(SUBDIRS DIRECTORY "${DIR}" PROPERTY SUBDIRECTORIES) | |
foreach(SUBDIR IN LISTS SUBDIRS) | |
print_all_targets("${SUBDIR}") |
No, you are not allowed to change the copyright notice. Indeed, the license text states pretty clearly:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
But you are allowed to add a copyright notice.
If you want to keep the MIT license, which is what I would advise you to do, you only need to add a single line to the license file, before or after Copyright (c) 2012 Some Name
with your own copyright notice. The final LICENSE
file will look like this:
The MIT License (MIT)
// | |
// Author: Jonathan Blow | |
// Version: 1 | |
// Date: 31 August, 2018 | |
// | |
// This code is released under the MIT license, which you can find at | |
// | |
// https://opensource.org/licenses/MIT | |
// | |
// |
#include <OpenGL/gl3.h> | |
#include <SDL2/SDL.h> | |
#define SOKOL_IMPL | |
#define SOKOL_GLCORE33 | |
#include <sokol_gfx.h> | |
#define STB_IMAGE_IMPLEMENTATION | |
#include <stb_image.h> | |
#define CODE(...) #__VA_ARGS__ |
What is strict aliasing? First we will describe what is aliasing and then we can learn what being strict about it means.
In C and C++ aliasing has to do with what expression types we are allowed to access stored values through. In both C and C++ the standard specifies which expression types are allowed to alias which types. The compiler and optimizer are allowed to assume we follow the aliasing rules strictly, hence the term strict aliasing rule. If we attempt to access a value using a type not allowed it is classified as undefined behavior(UB). Once we have undefined behavior all bets are off, the results of our program are no longer reliable.
Unfortunately with strict aliasing violations, we will often obtain the results we expect, leaving the possibility the a future version of a compiler with a new optimization will break code we th
This is a compiled list of falsehoods programmers tend to believe about working with time.
Don't re-invent a date time library yourself. If you think you understand everything about time, you're probably doing it wrong.
- There are always 24 hours in a day.
- February is always 28 days long.
- Any 24-hour period will always begin and end in the same day (or week, or month).
# This CMake file will build Freetype and Harfbuzz as external | |
# projects. We follow the build description as described here: | |
# https://sourceforge.net/projects/freetype/files/freetype2/2.5.3/ So, | |
# first we build Freetype2 w/o Harfbuzz, then we build Harfbuzz with | |
# freetype support after which we rebuild Freetype2 again. | |
# | |
# Both CMake files of Freetype2 and Harfbuzz are depending on | |
# pkg-config to find the dependencies for both projects. I've | |
# included a patch for Freetype2 and Harfbuzz which allows you to | |
# build Freetype2 and Harbuzz with pure CMake features. So I removed |
// | |
// Compile for emscripten using | |
// emcc -Iinclude SingleFileOpenGLTex.cpp \ | |
-O2 -std=c++14 -s TOTAL_MEMORY=33554432 -s USE_SDL_IMAGE=2 -s SDL2_IMAGE_FORMATS='["png"]' --preload-file examples/data -s USE_SDL=2 -o html/SingleFileOpenGLTex.html | |
// where the following images must be located in a subfolder | |
// - examples/data/test.png | |
// - examples/data/cartman.png | |
// - examples/data/cube-negx.png | |
// - examples/data/cube-negz.png | |
// |