State of Roblox graphics API across all platforms, with percentage deltas since EOY 2018. Updated December 29 2019.
| API | Share |
|---|---|
| Direct3D 11+ | 85% (+5%) |
| Direct3D 10.1 | 8.5% (-1.5%) |
| Direct3D 10.0 | 5.5% (-2.5%) |
| Direct3D 9 | 1% (-1%) |
| Interesting libraries I might like to use in a project... | |
| Asset loading: | |
| assetsys.h - virtual filesystem with ZIP backing, overlaying, etc https://github.com/mattiasgustavsson/libs/blob/master/docs/assetsys.md | |
| cute_filewatch.h - file modification watching, for runtime reloading etc https://github.com/RandyGaul/cute_headers/blob/master/cute_filewatch.h | |
| flatbuffers - data serialization, zero-copy deserialization, extensible schemas https://github.com/google/flatbuffers | |
| stb_image - https://github.com/nothings/stb/blob/master/stb_image.h | |
| tinyexr - https://github.com/syoyo/tinyexr | |
| tinygltf - https://github.com/syoyo/tinygltf | |
| tinyobjloader - https://github.com/syoyo/tinyobjloader |
| // | |
| // This is a simple example that uses face-varying u,v data | |
| // with uniform catmull-clark subdivision using OpenSubdiv | |
| // | |
| // c++ -o displayOsdFVarCoord displayOsdFVarCoord.cpp -I$OPENSUBDIV/include -L$OPENSUBDIV/lib -losdCPU -lglut -lGL | |
| // | |
| #if defined(__APPLE__) | |
| #include <GLUT/glut.h> | |
| #else |
| // stats.js r9 - http://github.com/mrdoob/stats.js | |
| var Stats=function(){var h,a,r=0,s=0,i=Date.now(),u=i,t=i,l=0,n=1E3,o=0,e,j,f,b=[[16,16,48],[0,255,255]],m=0,p=1E3,q=0,d,k,g,c=[[16,48,16],[0,255,0]];h=document.createElement("div");h.style.cursor="pointer";h.style.width="80px";h.style.opacity="0.9";h.style.zIndex="10001";h.addEventListener("mousedown",function(a){a.preventDefault();r=(r+1)%2;0==r?(e.style.display="block",d.style.display="none"):(e.style.display="none",d.style.display="block")},!1);e=document.createElement("div");e.style.textAlign= | |
| "left";e.style.lineHeight="1.2em";e.style.backgroundColor="rgb("+Math.floor(b[0][0]/2)+","+Math.floor(b[0][1]/2)+","+Math.floor(b[0][2]/2)+")";e.style.padding="0 0 3px 3px";h.appendChild(e);j=document.createElement("div");j.style.fontFamily="Helvetica, Arial, sans-serif";j.style.fontSize="9px";j.style.color="rgb("+b[1][0]+","+b[1][1]+","+b[1][2]+")";j.style.fontWeight="bold";j.innerHTML="FPS";e.appendChild(j);f=document.createElement("div");f.style.position="relati |
| // float->half variants. | |
| // by Fabian "ryg" Giesen. | |
| // | |
| // I hereby place this code in the public domain, as per the terms of the | |
| // CC0 license: | |
| // | |
| // https://creativecommons.org/publicdomain/zero/1.0/ | |
| // | |
| // float_to_half_full: This is basically the ISPC stdlib code, except | |
| // I preserve the sign of NaNs (any good reason not to?) |
| // half->float variants. | |
| // by Fabian "ryg" Giesen. | |
| // | |
| // I hereby place this code in the public domain. | |
| // | |
| // half_to_float_fast: table based | |
| // tables could be done in a more compact fashion (in particular, can store tab2 in low word of tab1!) | |
| // but something of a dead end since not very SIMD-friendly. pretty much abandoned at this point. | |
| // | |
| // half_to_float_fast2: use FP adder hardware to deal with denormals. |