Tasks · T50a: chapter 44 Rendering, RenderSurface planned, what gpui can and cannot host

This commit is contained in:
ZacharyZhang-NY committed 2026-10-03 23:14:27 -04:00
1 parent 3921edebb0
commit eddb13f3d7
4 files changed
+33 -1

No files matched your search

+13
View File
@@ -0,0 +1,13 @@
# Chapter 44
## T50b Rendering · Surface — `src/rendering`
gpui at 1a28cff paints pixels three ways: `RenderImage` through `paint_image` on every platform and the web; `CVPixelBuffer` through `paint_surface`, NV12 on macOS alone, dropped by the wgpu and DirectX renderers; a native view over the window. It shares no device and runs no outside shader.
- [ ] RenderSurface — the host draws a frame at the box's size in device pixels; a new size or revision draws again; the old frame leaves the atlas
- [x] FramebufferView / OffscreenRenderSurface / CustomRendererSurface / TextureView → `rendering::RenderSurface`
- [ ] ShaderView / GpuSurface / WebGPUSurface / Compute Visualization / GPU Particle View — `host`: the host renders on its own device and reads back into `rendering::RenderSurface`
- [ ] CameraTexture / GStreamerTexture / ExternalTexture — `host`: the host's frames reach `rendering::RenderSurface`
- [ ] ZeroCopyTexture / SharedTextureView — `blocked`: only macOS's Metal renderer draws `paint_surface`, NV12 alone
- [ ] MetalSurface / OpenGLSurface / VulkanSurface / D3D11/D3D12Surface — `blocked`: gpui shares no device; a host renders offscreen and feeds `rendering::RenderSurface`
- [x] 3D Scene / 3D Viewport → `media::ModelViewer`
+1
View File
@@ -351,3 +351,4 @@
| G2 | 1 | PASS | |
| G3 | 1 | FAIL | RangeSlider thumbs reported the whole track, not the bounds the other thumb leaves |
| G3 | 2 | PASS | |
| T50a | 1 | PASS | codex gpt-6.1-sol max |