mirror of
https://github.com/LostArtefacts/TRX.git
synced 2025-04-28 12:47:58 +03:00
gfx/3d: reduce amount of flushes
This commit is contained in:
parent
e2181347e8
commit
26f1ef6ea1
2 changed files with 8 additions and 3 deletions
|
@ -33,7 +33,7 @@
|
|||
- fixed sprite pickups not being paused in the pause/inventory screen (#2319, regression from 0.6)
|
||||
- fixed Skidoo snow wake effects at slow speeds (#2324, regression from 0.6)
|
||||
- fixed software renderer skybox occlusion issues (#2343, regression from 0.7)
|
||||
- fixed Floating Islands losing some frames if played first (#2325, regression from 0.7)
|
||||
- improved rendering to achieve a slight performance boost in big rooms (#2325)
|
||||
|
||||
## [0.8](https://github.com/LostArtefacts/TRX/compare/tr2-0.8...tr2-0.8) - 2025-01-01
|
||||
- completed decompilation efforts – TR2X.dll is gone, Tomb2.exe no longer needed (#1694)
|
||||
|
|
|
@ -31,6 +31,7 @@ typedef struct {
|
|||
GFX_2D_SURFACE *surface_tex[GFX_MAX_TEXTURES];
|
||||
int32_t texture_map[GFX_MAX_TEXTURES];
|
||||
int32_t env_map_texture;
|
||||
int32_t current_texture;
|
||||
} M_PRIV;
|
||||
|
||||
static VERTEX_INFO m_VBuffer[32] = {};
|
||||
|
@ -238,11 +239,13 @@ static void M_SelectTexture(RENDERER *const renderer, const int32_t tex_source)
|
|||
return;
|
||||
}
|
||||
if (tex_source == -1) {
|
||||
priv->current_texture = tex_source;
|
||||
GFX_3D_Renderer_SetTexturingEnabled(priv->renderer_3d, false);
|
||||
} else {
|
||||
} else if (tex_source != priv->current_texture) {
|
||||
priv->current_texture = tex_source;
|
||||
GFX_3D_Renderer_SetTexturingEnabled(priv->renderer_3d, true);
|
||||
GFX_3D_Renderer_SelectTexture(
|
||||
priv->renderer_3d, priv->texture_map[tex_source]);
|
||||
GFX_3D_Renderer_SetTexturingEnabled(priv->renderer_3d, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1420,6 +1423,7 @@ static void M_Init(RENDERER *const renderer)
|
|||
M_PRIV *const priv = Memory_Alloc(sizeof(M_PRIV));
|
||||
priv->renderer_2d = GFX_2D_Renderer_Create();
|
||||
priv->renderer_3d = GFX_3D_Renderer_Create();
|
||||
priv->current_texture = -1;
|
||||
|
||||
for (int32_t i = 0; i < GFX_MAX_TEXTURES; i++) {
|
||||
priv->texture_map[i] = GFX_NO_TEXTURE;
|
||||
|
@ -1503,6 +1507,7 @@ static void M_Close(RENDERER *const renderer)
|
|||
static void M_BeginScene(RENDERER *const renderer)
|
||||
{
|
||||
M_PRIV *const priv = renderer->priv;
|
||||
priv->current_texture = -1;
|
||||
ASSERT(renderer->initialized && renderer->open);
|
||||
M_EnableZBuffer(renderer, true, true);
|
||||
GFX_3D_Renderer_RenderBegin(priv->renderer_3d);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue