Repository files navigation

Tests include:

ClearScreen

Clears the screen to CornflowerBlue. Mostly useful as a smoke test to make sure basic device init and render passes are working as intended.

ClearScreen_MultiWindow

Similar to above, but with two windows. Useful for testing window claim/unclaim logic and presenting to multiple swapchains.

BasicTriangle

Sets up a graphics pipeline and draws a triangle without vertex buffers. (The vertices are manually positioned in the vertex shader.) Also tests some basic rasterizer state with custom viewports, scissor rects, and fill/wireframe modes.

TriangleVertexBuffer

Similar to above, but using a MoonWorks vertex buffer and custom vertex structs.

StoreLoad

Draws a triangle to the screen in one render pass, stores the attachment, and then loads the attachment again. Tests that load/store operations work as expected.

TexturedQuad

Draws a textured quad to the screen. Tests texture binding, index buffers, and sampler states.

AnimatedTexturedQuad

Similar to above, but with rotating and color-blending animations. Tests vertex and fragment uniforms.

MSAA

Draws a basic triangle with varying MSAA sample counts.

CullMode

Draws several triangles with various culling modes and winding orders.

GetBufferData

Sets buffer data, gets the data back from the GPU, and prints the results to the console.

Cube

Renders a cubemap skybox and a spinning cube. Tests depth textures, sampling from depth textures, depth-only render passes, cube textures, and 32-bit index buffers.

BasicCompute

Uses compute pipelines to (1) fill a texture with yellow pixels then display it to the screen and (2) calculate the squares of the first 64 integers. Tests compute pipeline creation, compute dispatching, compute textures, and compute buffers.

ComputeUniforms

Uses a compute pipeline to fill a texture with a color gradient. Tests compute uniforms.

DrawIndirect

Draws two triangles via indirect commands. Tests DrawPrimitivesIndirect.

InstancingAndOffsets

Draws 16 instanced triangles. Tests DrawPrimitivesInstanced, vertex offsets, and index offsets.

CompressedTextures

Loads a series of compressed textures, then displays them for viewing. Tests compressed texture loading.

CopyTexture

Loads an image, then makes three copies of the image. One is a 1:1 scale image, another is a half-sized image (to test linear/nearest blitting), and the final copy is to a buffer. The buffer bytes are then compared with the original texture bytes to verify the copy's correctness. Tests CopyTextureToTexture and CopyTextureToBuffer.

VideoPlayer

Plays a sample Ogg Theora video file. Tests YUV textures and video rendering.

Texture3D

Displays 2D slices of a 3D texture. Tests creating and drawing 3D textures.

TextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are generated from PNGs. Tests SetTextureData for mip levels and rendering mipmaps.

VertexSampler

Displays a triangle whose colors are driven by sampling a texture in the vertex shader.

RenderTexture2D

Clears and draws 4 render textures to the screen. Tests binding and sampling 2D render textures.

RenderTexture3D

Fades through 2D slices of a 3D render texture. Tests binding and sampling 3D render textures.

RenderTextureCube

Displays a cubemap generated by rendering to a cube render target. Tests binding and sampling cube render textures.

RenderTextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are solid colors, generated by clearing various levels of the texture in a render pass. Tests rendering to mipmap levels of a render texture, mip LOD bias, min/max LODs, and mip filter modes.

BasicStencil

Demonstrates stencil masking using two triangles. Tests stencil buffers and basic stencil operations.

DepthMSAA

Displays two cubes floating around each other on a multisampled surface. Tests multisampled depth buffers.

MSAACube

Same as RenderTextureCube, but with MSAA cube RTs. Draws triangles to each cubemap face so there's something to see. Tests cube render target MSAA.

WindowResizing

Tests resizing the window to various resolutions.

About

Test suite for MoonWorks graphics

Resources

Stars

20 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Tests include:

ClearScreen

Clears the screen to CornflowerBlue. Mostly useful as a smoke test to make sure basic device init and render passes are working as intended.

ClearScreen_MultiWindow

Similar to above, but with two windows. Useful for testing window claim/unclaim logic and presenting to multiple swapchains.

BasicTriangle

Sets up a graphics pipeline and draws a triangle without vertex buffers. (The vertices are manually positioned in the vertex shader.) Also tests some basic rasterizer state with custom viewports, scissor rects, and fill/wireframe modes.

TriangleVertexBuffer

Similar to above, but using a MoonWorks vertex buffer and custom vertex structs.

StoreLoad

Draws a triangle to the screen in one render pass, stores the attachment, and then loads the attachment again. Tests that load/store operations work as expected.

TexturedQuad

Draws a textured quad to the screen. Tests texture binding, index buffers, and sampler states.

AnimatedTexturedQuad

Similar to above, but with rotating and color-blending animations. Tests vertex and fragment uniforms.

MSAA

Draws a basic triangle with varying MSAA sample counts.

CullMode

Draws several triangles with various culling modes and winding orders.

GetBufferData

Sets buffer data, gets the data back from the GPU, and prints the results to the console.

Cube

Renders a cubemap skybox and a spinning cube. Tests depth textures, sampling from depth textures, depth-only render passes, cube textures, and 32-bit index buffers.

BasicCompute

Uses compute pipelines to (1) fill a texture with yellow pixels then display it to the screen and (2) calculate the squares of the first 64 integers. Tests compute pipeline creation, compute dispatching, compute textures, and compute buffers.

ComputeUniforms

Uses a compute pipeline to fill a texture with a color gradient. Tests compute uniforms.

DrawIndirect

Draws two triangles via indirect commands. Tests DrawPrimitivesIndirect.

InstancingAndOffsets

Draws 16 instanced triangles. Tests DrawPrimitivesInstanced, vertex offsets, and index offsets.

CompressedTextures

Loads a series of compressed textures, then displays them for viewing. Tests compressed texture loading.

CopyTexture

Loads an image, then makes three copies of the image. One is a 1:1 scale image, another is a half-sized image (to test linear/nearest blitting), and the final copy is to a buffer. The buffer bytes are then compared with the original texture bytes to verify the copy's correctness. Tests CopyTextureToTexture and CopyTextureToBuffer.

VideoPlayer

Plays a sample Ogg Theora video file. Tests YUV textures and video rendering.

Texture3D

Displays 2D slices of a 3D texture. Tests creating and drawing 3D textures.

TextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are generated from PNGs. Tests SetTextureData for mip levels and rendering mipmaps.

VertexSampler

Displays a triangle whose colors are driven by sampling a texture in the vertex shader.

RenderTexture2D

Clears and draws 4 render textures to the screen. Tests binding and sampling 2D render textures.

RenderTexture3D

Fades through 2D slices of a 3D render texture. Tests binding and sampling 3D render textures.

RenderTextureCube

Displays a cubemap generated by rendering to a cube render target. Tests binding and sampling cube render textures.

RenderTextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are solid colors, generated by clearing various levels of the texture in a render pass. Tests rendering to mipmap levels of a render texture, mip LOD bias, min/max LODs, and mip filter modes.

BasicStencil

Demonstrates stencil masking using two triangles. Tests stencil buffers and basic stencil operations.

DepthMSAA

Displays two cubes floating around each other on a multisampled surface. Tests multisampled depth buffers.

MSAACube

Same as RenderTextureCube, but with MSAA cube RTs. Draws triangles to each cubemap face so there's something to see. Tests cube render target MSAA.

WindowResizing

Tests resizing the window to various resolutions.

About

Test suite for MoonWorks graphics

Resources

Stars

20 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Tests include:

ClearScreen

Clears the screen to CornflowerBlue. Mostly useful as a smoke test to make sure basic device init and render passes are working as intended.

ClearScreen_MultiWindow

Similar to above, but with two windows. Useful for testing window claim/unclaim logic and presenting to multiple swapchains.

BasicTriangle

Sets up a graphics pipeline and draws a triangle without vertex buffers. (The vertices are manually positioned in the vertex shader.) Also tests some basic rasterizer state with custom viewports, scissor rects, and fill/wireframe modes.

TriangleVertexBuffer

Similar to above, but using a MoonWorks vertex buffer and custom vertex structs.

StoreLoad

Draws a triangle to the screen in one render pass, stores the attachment, and then loads the attachment again. Tests that load/store operations work as expected.

TexturedQuad

Draws a textured quad to the screen. Tests texture binding, index buffers, and sampler states.

AnimatedTexturedQuad

Similar to above, but with rotating and color-blending animations. Tests vertex and fragment uniforms.

MSAA

Draws a basic triangle with varying MSAA sample counts.

CullMode

Draws several triangles with various culling modes and winding orders.

GetBufferData

Sets buffer data, gets the data back from the GPU, and prints the results to the console.

Cube

Renders a cubemap skybox and a spinning cube. Tests depth textures, sampling from depth textures, depth-only render passes, cube textures, and 32-bit index buffers.

BasicCompute

Uses compute pipelines to (1) fill a texture with yellow pixels then display it to the screen and (2) calculate the squares of the first 64 integers. Tests compute pipeline creation, compute dispatching, compute textures, and compute buffers.

ComputeUniforms

Uses a compute pipeline to fill a texture with a color gradient. Tests compute uniforms.

DrawIndirect

Draws two triangles via indirect commands. Tests DrawPrimitivesIndirect.

InstancingAndOffsets

Draws 16 instanced triangles. Tests DrawPrimitivesInstanced, vertex offsets, and index offsets.

CompressedTextures

Loads a series of compressed textures, then displays them for viewing. Tests compressed texture loading.

CopyTexture

Loads an image, then makes three copies of the image. One is a 1:1 scale image, another is a half-sized image (to test linear/nearest blitting), and the final copy is to a buffer. The buffer bytes are then compared with the original texture bytes to verify the copy's correctness. Tests CopyTextureToTexture and CopyTextureToBuffer.

VideoPlayer

Plays a sample Ogg Theora video file. Tests YUV textures and video rendering.

Texture3D

Displays 2D slices of a 3D texture. Tests creating and drawing 3D textures.

TextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are generated from PNGs. Tests SetTextureData for mip levels and rendering mipmaps.

VertexSampler

Displays a triangle whose colors are driven by sampling a texture in the vertex shader.

RenderTexture2D

Clears and draws 4 render textures to the screen. Tests binding and sampling 2D render textures.

RenderTexture3D

Fades through 2D slices of a 3D render texture. Tests binding and sampling 3D render textures.

RenderTextureCube

Displays a cubemap generated by rendering to a cube render target. Tests binding and sampling cube render textures.

RenderTextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are solid colors, generated by clearing various levels of the texture in a render pass. Tests rendering to mipmap levels of a render texture, mip LOD bias, min/max LODs, and mip filter modes.

BasicStencil

Demonstrates stencil masking using two triangles. Tests stencil buffers and basic stencil operations.

DepthMSAA

Displays two cubes floating around each other on a multisampled surface. Tests multisampled depth buffers.

MSAACube

Same as RenderTextureCube, but with MSAA cube RTs. Draws triangles to each cubemap face so there's something to see. Tests cube render target MSAA.

WindowResizing

Tests resizing the window to various resolutions.

About

Test suite for MoonWorks graphics

Resources

Stars

20 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Tests include:

ClearScreen

Clears the screen to CornflowerBlue. Mostly useful as a smoke test to make sure basic device init and render passes are working as intended.

ClearScreen_MultiWindow

Similar to above, but with two windows. Useful for testing window claim/unclaim logic and presenting to multiple swapchains.

BasicTriangle

Sets up a graphics pipeline and draws a triangle without vertex buffers. (The vertices are manually positioned in the vertex shader.) Also tests some basic rasterizer state with custom viewports, scissor rects, and fill/wireframe modes.

TriangleVertexBuffer

Similar to above, but using a MoonWorks vertex buffer and custom vertex structs.

StoreLoad

Draws a triangle to the screen in one render pass, stores the attachment, and then loads the attachment again. Tests that load/store operations work as expected.

TexturedQuad

Draws a textured quad to the screen. Tests texture binding, index buffers, and sampler states.

AnimatedTexturedQuad

Similar to above, but with rotating and color-blending animations. Tests vertex and fragment uniforms.

MSAA

Draws a basic triangle with varying MSAA sample counts.

CullMode

Draws several triangles with various culling modes and winding orders.

GetBufferData

Sets buffer data, gets the data back from the GPU, and prints the results to the console.

Cube

Renders a cubemap skybox and a spinning cube. Tests depth textures, sampling from depth textures, depth-only render passes, cube textures, and 32-bit index buffers.

BasicCompute

Uses compute pipelines to (1) fill a texture with yellow pixels then display it to the screen and (2) calculate the squares of the first 64 integers. Tests compute pipeline creation, compute dispatching, compute textures, and compute buffers.

ComputeUniforms

Uses a compute pipeline to fill a texture with a color gradient. Tests compute uniforms.

DrawIndirect

Draws two triangles via indirect commands. Tests DrawPrimitivesIndirect.

InstancingAndOffsets

Draws 16 instanced triangles. Tests DrawPrimitivesInstanced, vertex offsets, and index offsets.

CompressedTextures

Loads a series of compressed textures, then displays them for viewing. Tests compressed texture loading.

CopyTexture

Loads an image, then makes three copies of the image. One is a 1:1 scale image, another is a half-sized image (to test linear/nearest blitting), and the final copy is to a buffer. The buffer bytes are then compared with the original texture bytes to verify the copy's correctness. Tests CopyTextureToTexture and CopyTextureToBuffer.

VideoPlayer

Plays a sample Ogg Theora video file. Tests YUV textures and video rendering.

Texture3D

Displays 2D slices of a 3D texture. Tests creating and drawing 3D textures.

TextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are generated from PNGs. Tests SetTextureData for mip levels and rendering mipmaps.

VertexSampler

Displays a triangle whose colors are driven by sampling a texture in the vertex shader.

RenderTexture2D

Clears and draws 4 render textures to the screen. Tests binding and sampling 2D render textures.

RenderTexture3D

Fades through 2D slices of a 3D render texture. Tests binding and sampling 3D render textures.

RenderTextureCube

Displays a cubemap generated by rendering to a cube render target. Tests binding and sampling cube render textures.

RenderTextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are solid colors, generated by clearing various levels of the texture in a render pass. Tests rendering to mipmap levels of a render texture, mip LOD bias, min/max LODs, and mip filter modes.

BasicStencil

Demonstrates stencil masking using two triangles. Tests stencil buffers and basic stencil operations.

DepthMSAA

Displays two cubes floating around each other on a multisampled surface. Tests multisampled depth buffers.

MSAACube

Same as RenderTextureCube, but with MSAA cube RTs. Draws triangles to each cubemap face so there's something to see. Tests cube render target MSAA.

WindowResizing

Tests resizing the window to various resolutions.

About

Test suite for MoonWorks graphics

Resources

Stars

20 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Tests include:

ClearScreen

Clears the screen to CornflowerBlue. Mostly useful as a smoke test to make sure basic device init and render passes are working as intended.

ClearScreen_MultiWindow

Similar to above, but with two windows. Useful for testing window claim/unclaim logic and presenting to multiple swapchains.

BasicTriangle

Sets up a graphics pipeline and draws a triangle without vertex buffers. (The vertices are manually positioned in the vertex shader.) Also tests some basic rasterizer state with custom viewports, scissor rects, and fill/wireframe modes.

TriangleVertexBuffer

Similar to above, but using a MoonWorks vertex buffer and custom vertex structs.

StoreLoad

Draws a triangle to the screen in one render pass, stores the attachment, and then loads the attachment again. Tests that load/store operations work as expected.

TexturedQuad

Draws a textured quad to the screen. Tests texture binding, index buffers, and sampler states.

AnimatedTexturedQuad

Similar to above, but with rotating and color-blending animations. Tests vertex and fragment uniforms.

MSAA

Draws a basic triangle with varying MSAA sample counts.

CullMode

Draws several triangles with various culling modes and winding orders.

GetBufferData

Sets buffer data, gets the data back from the GPU, and prints the results to the console.

Cube

Renders a cubemap skybox and a spinning cube. Tests depth textures, sampling from depth textures, depth-only render passes, cube textures, and 32-bit index buffers.

BasicCompute

Uses compute pipelines to (1) fill a texture with yellow pixels then display it to the screen and (2) calculate the squares of the first 64 integers. Tests compute pipeline creation, compute dispatching, compute textures, and compute buffers.

ComputeUniforms

Uses a compute pipeline to fill a texture with a color gradient. Tests compute uniforms.

DrawIndirect

Draws two triangles via indirect commands. Tests DrawPrimitivesIndirect.

InstancingAndOffsets

Draws 16 instanced triangles. Tests DrawPrimitivesInstanced, vertex offsets, and index offsets.

CompressedTextures

Loads a series of compressed textures, then displays them for viewing. Tests compressed texture loading.

CopyTexture

Loads an image, then makes three copies of the image. One is a 1:1 scale image, another is a half-sized image (to test linear/nearest blitting), and the final copy is to a buffer. The buffer bytes are then compared with the original texture bytes to verify the copy's correctness. Tests CopyTextureToTexture and CopyTextureToBuffer.

VideoPlayer

Plays a sample Ogg Theora video file. Tests YUV textures and video rendering.

Texture3D

Displays 2D slices of a 3D texture. Tests creating and drawing 3D textures.

TextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are generated from PNGs. Tests SetTextureData for mip levels and rendering mipmaps.

VertexSampler

Displays a triangle whose colors are driven by sampling a texture in the vertex shader.

RenderTexture2D

Clears and draws 4 render textures to the screen. Tests binding and sampling 2D render textures.

RenderTexture3D

Fades through 2D slices of a 3D render texture. Tests binding and sampling 3D render textures.

RenderTextureCube

Displays a cubemap generated by rendering to a cube render target. Tests binding and sampling cube render textures.

RenderTextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are solid colors, generated by clearing various levels of the texture in a render pass. Tests rendering to mipmap levels of a render texture, mip LOD bias, min/max LODs, and mip filter modes.

BasicStencil

Demonstrates stencil masking using two triangles. Tests stencil buffers and basic stencil operations.

DepthMSAA

Displays two cubes floating around each other on a multisampled surface. Tests multisampled depth buffers.

MSAACube

Same as RenderTextureCube, but with MSAA cube RTs. Draws triangles to each cubemap face so there's something to see. Tests cube render target MSAA.

WindowResizing

Tests resizing the window to various resolutions.

About

Test suite for MoonWorks graphics

Resources

Stars

20 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Tests include:

ClearScreen

Clears the screen to CornflowerBlue. Mostly useful as a smoke test to make sure basic device init and render passes are working as intended.

ClearScreen_MultiWindow

Similar to above, but with two windows. Useful for testing window claim/unclaim logic and presenting to multiple swapchains.

BasicTriangle

Sets up a graphics pipeline and draws a triangle without vertex buffers. (The vertices are manually positioned in the vertex shader.) Also tests some basic rasterizer state with custom viewports, scissor rects, and fill/wireframe modes.

TriangleVertexBuffer

Similar to above, but using a MoonWorks vertex buffer and custom vertex structs.

StoreLoad

Draws a triangle to the screen in one render pass, stores the attachment, and then loads the attachment again. Tests that load/store operations work as expected.

TexturedQuad

Draws a textured quad to the screen. Tests texture binding, index buffers, and sampler states.

AnimatedTexturedQuad

Similar to above, but with rotating and color-blending animations. Tests vertex and fragment uniforms.

MSAA

Draws a basic triangle with varying MSAA sample counts.

CullMode

Draws several triangles with various culling modes and winding orders.

GetBufferData

Sets buffer data, gets the data back from the GPU, and prints the results to the console.

Cube

Renders a cubemap skybox and a spinning cube. Tests depth textures, sampling from depth textures, depth-only render passes, cube textures, and 32-bit index buffers.

BasicCompute

Uses compute pipelines to (1) fill a texture with yellow pixels then display it to the screen and (2) calculate the squares of the first 64 integers. Tests compute pipeline creation, compute dispatching, compute textures, and compute buffers.

ComputeUniforms

Uses a compute pipeline to fill a texture with a color gradient. Tests compute uniforms.

DrawIndirect

Draws two triangles via indirect commands. Tests DrawPrimitivesIndirect.

InstancingAndOffsets

Draws 16 instanced triangles. Tests DrawPrimitivesInstanced, vertex offsets, and index offsets.

CompressedTextures

Loads a series of compressed textures, then displays them for viewing. Tests compressed texture loading.

CopyTexture

Loads an image, then makes three copies of the image. One is a 1:1 scale image, another is a half-sized image (to test linear/nearest blitting), and the final copy is to a buffer. The buffer bytes are then compared with the original texture bytes to verify the copy's correctness. Tests CopyTextureToTexture and CopyTextureToBuffer.

VideoPlayer

Plays a sample Ogg Theora video file. Tests YUV textures and video rendering.

Texture3D

Displays 2D slices of a 3D texture. Tests creating and drawing 3D textures.

TextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are generated from PNGs. Tests SetTextureData for mip levels and rendering mipmaps.

VertexSampler

Displays a triangle whose colors are driven by sampling a texture in the vertex shader.

RenderTexture2D

Clears and draws 4 render textures to the screen. Tests binding and sampling 2D render textures.

RenderTexture3D

Fades through 2D slices of a 3D render texture. Tests binding and sampling 3D render textures.

RenderTextureCube

Displays a cubemap generated by rendering to a cube render target. Tests binding and sampling cube render textures.

RenderTextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are solid colors, generated by clearing various levels of the texture in a render pass. Tests rendering to mipmap levels of a render texture, mip LOD bias, min/max LODs, and mip filter modes.

BasicStencil

Demonstrates stencil masking using two triangles. Tests stencil buffers and basic stencil operations.

DepthMSAA

Displays two cubes floating around each other on a multisampled surface. Tests multisampled depth buffers.

MSAACube

Same as RenderTextureCube, but with MSAA cube RTs. Draws triangles to each cubemap face so there's something to see. Tests cube render target MSAA.

WindowResizing

Tests resizing the window to various resolutions.

About

Test suite for MoonWorks graphics

Resources

Stars

20 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Tests include:

ClearScreen

Clears the screen to CornflowerBlue. Mostly useful as a smoke test to make sure basic device init and render passes are working as intended.

ClearScreen_MultiWindow

Similar to above, but with two windows. Useful for testing window claim/unclaim logic and presenting to multiple swapchains.

BasicTriangle

Sets up a graphics pipeline and draws a triangle without vertex buffers. (The vertices are manually positioned in the vertex shader.) Also tests some basic rasterizer state with custom viewports, scissor rects, and fill/wireframe modes.

TriangleVertexBuffer

Similar to above, but using a MoonWorks vertex buffer and custom vertex structs.

StoreLoad

Draws a triangle to the screen in one render pass, stores the attachment, and then loads the attachment again. Tests that load/store operations work as expected.

TexturedQuad

Draws a textured quad to the screen. Tests texture binding, index buffers, and sampler states.

AnimatedTexturedQuad

Similar to above, but with rotating and color-blending animations. Tests vertex and fragment uniforms.

MSAA

Draws a basic triangle with varying MSAA sample counts.

CullMode

Draws several triangles with various culling modes and winding orders.

GetBufferData

Sets buffer data, gets the data back from the GPU, and prints the results to the console.

Cube

Renders a cubemap skybox and a spinning cube. Tests depth textures, sampling from depth textures, depth-only render passes, cube textures, and 32-bit index buffers.

BasicCompute

Uses compute pipelines to (1) fill a texture with yellow pixels then display it to the screen and (2) calculate the squares of the first 64 integers. Tests compute pipeline creation, compute dispatching, compute textures, and compute buffers.

ComputeUniforms

Uses a compute pipeline to fill a texture with a color gradient. Tests compute uniforms.

DrawIndirect

Draws two triangles via indirect commands. Tests DrawPrimitivesIndirect.

InstancingAndOffsets

Draws 16 instanced triangles. Tests DrawPrimitivesInstanced, vertex offsets, and index offsets.

CompressedTextures

Loads a series of compressed textures, then displays them for viewing. Tests compressed texture loading.

CopyTexture

Loads an image, then makes three copies of the image. One is a 1:1 scale image, another is a half-sized image (to test linear/nearest blitting), and the final copy is to a buffer. The buffer bytes are then compared with the original texture bytes to verify the copy's correctness. Tests CopyTextureToTexture and CopyTextureToBuffer.

VideoPlayer

Plays a sample Ogg Theora video file. Tests YUV textures and video rendering.

Texture3D

Displays 2D slices of a 3D texture. Tests creating and drawing 3D textures.

TextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are generated from PNGs. Tests SetTextureData for mip levels and rendering mipmaps.

VertexSampler

Displays a triangle whose colors are driven by sampling a texture in the vertex shader.

RenderTexture2D

Clears and draws 4 render textures to the screen. Tests binding and sampling 2D render textures.

RenderTexture3D

Fades through 2D slices of a 3D render texture. Tests binding and sampling 3D render textures.

RenderTextureCube

Displays a cubemap generated by rendering to a cube render target. Tests binding and sampling cube render textures.

RenderTextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are solid colors, generated by clearing various levels of the texture in a render pass. Tests rendering to mipmap levels of a render texture, mip LOD bias, min/max LODs, and mip filter modes.

BasicStencil

Demonstrates stencil masking using two triangles. Tests stencil buffers and basic stencil operations.

DepthMSAA

Displays two cubes floating around each other on a multisampled surface. Tests multisampled depth buffers.

MSAACube

Same as RenderTextureCube, but with MSAA cube RTs. Draws triangles to each cubemap face so there's something to see. Tests cube render target MSAA.

WindowResizing

Tests resizing the window to various resolutions.

About

Test suite for MoonWorks graphics

Resources

Stars

20 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Tests include:

ClearScreen

Clears the screen to CornflowerBlue. Mostly useful as a smoke test to make sure basic device init and render passes are working as intended.

ClearScreen_MultiWindow

Similar to above, but with two windows. Useful for testing window claim/unclaim logic and presenting to multiple swapchains.

BasicTriangle

Sets up a graphics pipeline and draws a triangle without vertex buffers. (The vertices are manually positioned in the vertex shader.) Also tests some basic rasterizer state with custom viewports, scissor rects, and fill/wireframe modes.

TriangleVertexBuffer

Similar to above, but using a MoonWorks vertex buffer and custom vertex structs.

StoreLoad

Draws a triangle to the screen in one render pass, stores the attachment, and then loads the attachment again. Tests that load/store operations work as expected.

TexturedQuad

Draws a textured quad to the screen. Tests texture binding, index buffers, and sampler states.

AnimatedTexturedQuad

Similar to above, but with rotating and color-blending animations. Tests vertex and fragment uniforms.

MSAA

Draws a basic triangle with varying MSAA sample counts.

CullMode

Draws several triangles with various culling modes and winding orders.

GetBufferData

Sets buffer data, gets the data back from the GPU, and prints the results to the console.

Cube

Renders a cubemap skybox and a spinning cube. Tests depth textures, sampling from depth textures, depth-only render passes, cube textures, and 32-bit index buffers.

BasicCompute

Uses compute pipelines to (1) fill a texture with yellow pixels then display it to the screen and (2) calculate the squares of the first 64 integers. Tests compute pipeline creation, compute dispatching, compute textures, and compute buffers.

ComputeUniforms

Uses a compute pipeline to fill a texture with a color gradient. Tests compute uniforms.

DrawIndirect

Draws two triangles via indirect commands. Tests DrawPrimitivesIndirect.

InstancingAndOffsets

Draws 16 instanced triangles. Tests DrawPrimitivesInstanced, vertex offsets, and index offsets.

CompressedTextures

Loads a series of compressed textures, then displays them for viewing. Tests compressed texture loading.

CopyTexture

Loads an image, then makes three copies of the image. One is a 1:1 scale image, another is a half-sized image (to test linear/nearest blitting), and the final copy is to a buffer. The buffer bytes are then compared with the original texture bytes to verify the copy's correctness. Tests CopyTextureToTexture and CopyTextureToBuffer.

VideoPlayer

Plays a sample Ogg Theora video file. Tests YUV textures and video rendering.

Texture3D

Displays 2D slices of a 3D texture. Tests creating and drawing 3D textures.

TextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are generated from PNGs. Tests SetTextureData for mip levels and rendering mipmaps.

VertexSampler

Displays a triangle whose colors are driven by sampling a texture in the vertex shader.

RenderTexture2D

Clears and draws 4 render textures to the screen. Tests binding and sampling 2D render textures.

RenderTexture3D

Fades through 2D slices of a 3D render texture. Tests binding and sampling 3D render textures.

RenderTextureCube

Displays a cubemap generated by rendering to a cube render target. Tests binding and sampling cube render textures.

RenderTextureMipmaps

Displays a quad that can be scaled to reveal various mip levels. The mips are solid colors, generated by clearing various levels of the texture in a render pass. Tests rendering to mipmap levels of a render texture, mip LOD bias, min/max LODs, and mip filter modes.

BasicStencil

Demonstrates stencil masking using two triangles. Tests stencil buffers and basic stencil operations.

DepthMSAA

Displays two cubes floating around each other on a multisampled surface. Tests multisampled depth buffers.

MSAACube

Same as RenderTextureCube, but with MSAA cube RTs. Draws triangles to each cubemap face so there's something to see. Tests cube render target MSAA.

WindowResizing

Tests resizing the window to various resolutions.

About

Test suite for MoonWorks graphics

Resources

Stars

20 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages