diff options
Diffstat (limited to '')
| -rw-r--r-- | CONTEXT.md | 15 |
1 files changed, 10 insertions, 5 deletions
| @@ -363,11 +363,16 @@ vocabulary / decisions. | |||
| 363 | - Replaces the map skybox with `<config dir>/skybox.png` (same directory as | 363 | - Replaces the map skybox with `<config dir>/skybox.png` (same directory as |
| 364 | the INI). Not `sv_skyname`: that did not take effect at runtime in this | 364 | the INI). Not `sv_skyname`: that did not take effect at runtime in this |
| 365 | build, so the skybox card now works on materials instead. | 365 | build, so the skybox card now works on materials instead. |
| 366 | - PNG is decoded with libpng16's simplified API (`dlopen`ed, no link | 366 | - The PNG is decoded by our own reader (`zlib`'s `uncompress` + PNG filters; |
| 367 | dependency). This build's `IMaterialSystem` interface ends at | 367 | 8-bit non-interlaced RGB/RGBA/gray/palette). Do **not** use the system |
| 368 | `GetDisplayDeviceName` (the slots after it belong to `CMaterialSystem` | 368 | libpng: `client.so`, `engine.so` and `vguimatsurface.so` each export their |
| 369 | itself), so there is **no `CreateTextureFromBits`**. The pixels are uploaded | 369 | own `png_create_read_struct`, so libpng16's internal PLT calls bind to the |
| 370 | through `CreateProceduralTexture` (vtable 81) + an `ITextureRegenerator` | 370 | game's older libpng with a different `png_struct` layout and crash in |
| 371 | `png_safe_warning` (error_ptr at +0xb0 reads NULL). | ||
| 372 | - This build's `IMaterialSystem` interface ends at `GetDisplayDeviceName` | ||
| 373 | (the slots after it belong to `CMaterialSystem` itself), so there is **no | ||
| 374 | `CreateTextureFromBits`**. The pixels are uploaded through | ||
| 375 | `CreateProceduralTexture` (vtable 81) + an `ITextureRegenerator` | ||
| 371 | (`SetTextureRegenerator` 12, `Download` 13), which fills mip 0 through | 376 | (`SetTextureRegenerator` 12, `Download` 13), which fills mip 0 through |
| 372 | `IVTFTexture::ImageData(frame,face,mip)` (39). `IVTFTexture`'s virtual | 377 | `IVTFTexture::ImageData(frame,face,mip)` (39). `IVTFTexture`'s virtual |
| 373 | destructor occupies two slots, so Width=15, Height=16, RowSizeInBytes=19. | 378 | destructor occupies two slots, so Width=15, Height=16, RowSizeInBytes=19. |
