mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-25 21:51:09 +00:00
- integrated GL parts of translation handling into the main module.
Now that this doesn't have to share assets with HW2D it could be simplified a lot.
This commit is contained in:
parent
bc485a7f2c
commit
a9d5533603
14 changed files with 89 additions and 201 deletions
|
@ -1089,7 +1089,6 @@ set (PCH_SOURCES
|
||||||
gl/textures/gl_material.cpp
|
gl/textures/gl_material.cpp
|
||||||
gl/textures/gl_hirestex.cpp
|
gl/textures/gl_hirestex.cpp
|
||||||
gl/textures/gl_samplers.cpp
|
gl/textures/gl_samplers.cpp
|
||||||
gl/textures/gl_translate.cpp
|
|
||||||
gl/textures/gl_hqresize.cpp
|
gl/textures/gl_hqresize.cpp
|
||||||
menu/joystickmenu.cpp
|
menu/joystickmenu.cpp
|
||||||
menu/loadsavemenu.cpp
|
menu/loadsavemenu.cpp
|
||||||
|
|
|
@ -50,7 +50,6 @@
|
||||||
#include "gl/scene/gl_drawinfo.h"
|
#include "gl/scene/gl_drawinfo.h"
|
||||||
#include "gl/scene/gl_scenedrawer.h"
|
#include "gl/scene/gl_scenedrawer.h"
|
||||||
#include "gl/data/gl_vertexbuffer.h"
|
#include "gl/data/gl_vertexbuffer.h"
|
||||||
#include "gl/textures/gl_translate.h"
|
|
||||||
|
|
||||||
|
|
||||||
CVAR(Bool, gl_lights_additive, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
CVAR(Bool, gl_lights_additive, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
||||||
|
@ -954,7 +953,7 @@ int LegacyDesaturation(F2DDrawer::RenderCommand &cmd)
|
||||||
|
|
||||||
// The easy case: It was already done.
|
// The easy case: It was already done.
|
||||||
auto find = DesaturatedTranslationTable.CheckKey(cmd.mTranslation);
|
auto find = DesaturatedTranslationTable.CheckKey(cmd.mTranslation);
|
||||||
if (find != nullptr && find->tables[desat] != nullptr) return GLTranslationPalette::GetInternalTranslation(find->tables[desat]);
|
if (find != nullptr && find->tables[desat] != nullptr) return find->tables[desat]->GetUniqueIndex();
|
||||||
|
|
||||||
// To handle this case for the legacy renderer a desaturated variant of the translation needs to be built.
|
// To handle this case for the legacy renderer a desaturated variant of the translation needs to be built.
|
||||||
auto newremap = new FRemapTable(*cmd.mTranslation);
|
auto newremap = new FRemapTable(*cmd.mTranslation);
|
||||||
|
@ -971,5 +970,5 @@ int LegacyDesaturation(F2DDrawer::RenderCommand &cmd)
|
||||||
}
|
}
|
||||||
auto &tbl = DesaturatedTranslationTable[cmd.mTranslation];
|
auto &tbl = DesaturatedTranslationTable[cmd.mTranslation];
|
||||||
tbl.tables[desat] = newremap;
|
tbl.tables[desat] = newremap;
|
||||||
return GLTranslationPalette::GetInternalTranslation(newremap);
|
return newremap->GetUniqueIndex();
|
||||||
}
|
}
|
|
@ -64,7 +64,6 @@
|
||||||
#include "gl/shaders/gl_postprocessshader.h"
|
#include "gl/shaders/gl_postprocessshader.h"
|
||||||
#include "gl/stereo3d/gl_stereo3d.h"
|
#include "gl/stereo3d/gl_stereo3d.h"
|
||||||
#include "gl/textures/gl_texture.h"
|
#include "gl/textures/gl_texture.h"
|
||||||
#include "gl/textures/gl_translate.h"
|
|
||||||
#include "gl/textures/gl_material.h"
|
#include "gl/textures/gl_material.h"
|
||||||
#include "gl/textures/gl_samplers.h"
|
#include "gl/textures/gl_samplers.h"
|
||||||
#include "gl/utility/gl_clock.h"
|
#include "gl/utility/gl_clock.h"
|
||||||
|
@ -576,7 +575,7 @@ void FGLRenderer::Draw2D(F2DDrawer *drawer)
|
||||||
auto mat = FMaterial::ValidateTexture(cmd.mTexture, false);
|
auto mat = FMaterial::ValidateTexture(cmd.mTexture, false);
|
||||||
if (mat == nullptr) continue;
|
if (mat == nullptr) continue;
|
||||||
|
|
||||||
if (gltrans == -1) gltrans = GLTranslationPalette::GetInternalTranslation(cmd.mTranslation);
|
if (gltrans == -1 && cmd.mTranslation != nullptr) gltrans = cmd.mTranslation->GetUniqueIndex();
|
||||||
gl_RenderState.SetMaterial(mat, cmd.mFlags & F2DDrawer::DTF_Wrap ? CLAMP_NONE : CLAMP_XY_NOMIP, -gltrans, -1, cmd.mDrawMode == F2DDrawer::DTM_AlphaTexture);
|
gl_RenderState.SetMaterial(mat, cmd.mFlags & F2DDrawer::DTF_Wrap ? CLAMP_NONE : CLAMP_XY_NOMIP, -gltrans, -1, cmd.mDrawMode == F2DDrawer::DTM_AlphaTexture);
|
||||||
gl_RenderState.EnableTexture(true);
|
gl_RenderState.EnableTexture(true);
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
#include "gl/data/gl_data.h"
|
#include "gl/data/gl_data.h"
|
||||||
#include "gl/textures/gl_hwtexture.h"
|
#include "gl/textures/gl_hwtexture.h"
|
||||||
#include "gl/textures/gl_texture.h"
|
#include "gl/textures/gl_texture.h"
|
||||||
#include "gl/textures/gl_translate.h"
|
|
||||||
#include "gl/utility/gl_clock.h"
|
#include "gl/utility/gl_clock.h"
|
||||||
#include "gl/utility/gl_templates.h"
|
#include "gl/utility/gl_templates.h"
|
||||||
#include "gl/gl_functions.h"
|
#include "gl/gl_functions.h"
|
||||||
|
@ -340,19 +339,6 @@ int OpenGLFrameBuffer::GetPageCount()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//==========================================================================
|
|
||||||
//
|
|
||||||
// DFrameBuffer :: CreatePalette
|
|
||||||
//
|
|
||||||
// Creates a native palette from a remap table, if supported.
|
|
||||||
//
|
|
||||||
//==========================================================================
|
|
||||||
|
|
||||||
FNativePalette *OpenGLFrameBuffer::CreatePalette(FRemapTable *remap)
|
|
||||||
{
|
|
||||||
return GLTranslationPalette::CreatePalette(remap);
|
|
||||||
}
|
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
|
@ -56,8 +56,6 @@ public:
|
||||||
// Releases the screenshot buffer.
|
// Releases the screenshot buffer.
|
||||||
virtual void ReleaseScreenshotBuffer();
|
virtual void ReleaseScreenshotBuffer();
|
||||||
|
|
||||||
FNativePalette *CreatePalette(FRemapTable *remap);
|
|
||||||
|
|
||||||
bool WipeStartScreen(int type);
|
bool WipeStartScreen(int type);
|
||||||
void WipeEndScreen();
|
void WipeEndScreen();
|
||||||
bool WipeDo(int ticks);
|
bool WipeDo(int ticks);
|
||||||
|
|
|
@ -39,7 +39,6 @@
|
||||||
#include "gl/system/gl_framebuffer.h"
|
#include "gl/system/gl_framebuffer.h"
|
||||||
#include "gl/system/gl_cvars.h"
|
#include "gl/system/gl_cvars.h"
|
||||||
#include "gl/shaders/gl_shader.h"
|
#include "gl/shaders/gl_shader.h"
|
||||||
#include "gl/textures/gl_translate.h"
|
|
||||||
#include "gl/textures/gl_material.h"
|
#include "gl/textures/gl_material.h"
|
||||||
#include "gl/textures/gl_samplers.h"
|
#include "gl/textures/gl_samplers.h"
|
||||||
#include "gl/utility/gl_templates.h"
|
#include "gl/utility/gl_templates.h"
|
||||||
|
|
|
@ -44,7 +44,6 @@
|
||||||
#include "gl/renderer/gl_renderer.h"
|
#include "gl/renderer/gl_renderer.h"
|
||||||
#include "gl/data/gl_data.h"
|
#include "gl/data/gl_data.h"
|
||||||
#include "gl/textures/gl_texture.h"
|
#include "gl/textures/gl_texture.h"
|
||||||
#include "gl/textures/gl_translate.h"
|
|
||||||
#include "gl/textures/gl_material.h"
|
#include "gl/textures/gl_material.h"
|
||||||
#include "gl/textures/gl_samplers.h"
|
#include "gl/textures/gl_samplers.h"
|
||||||
#include "gl/shaders/gl_shader.h"
|
#include "gl/shaders/gl_shader.h"
|
||||||
|
@ -250,7 +249,7 @@ unsigned char * FGLTexture::CreateTexBuffer(int translation, int & w, int & h, F
|
||||||
{
|
{
|
||||||
// When using translations everything must be mapped to the base palette.
|
// When using translations everything must be mapped to the base palette.
|
||||||
// so use CopyTrueColorTranslated
|
// so use CopyTrueColorTranslated
|
||||||
tex->CopyTrueColorTranslated(&bmp, exx, exx, 0, GLTranslationPalette::GetPalette(translation));
|
tex->CopyTrueColorTranslated(&bmp, exx, exx, 0, FUniquePalette::GetPalette(translation));
|
||||||
isTransparent = 0;
|
isTransparent = 0;
|
||||||
// This is not conclusive for setting the texture's transparency info.
|
// This is not conclusive for setting the texture's transparency info.
|
||||||
}
|
}
|
||||||
|
@ -299,7 +298,8 @@ const FHardwareTexture *FGLTexture::Bind(int texunit, int clampmode, int transla
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
translation = GLTranslationPalette::GetInternalTranslation(translation);
|
auto remap = TranslationToTable(translation);
|
||||||
|
translation = remap == nullptr ? 0 : remap->GetUniqueIndex();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,6 @@
|
||||||
#include "gl/textures/gl_texture.h"
|
#include "gl/textures/gl_texture.h"
|
||||||
#include "gl/textures/gl_material.h"
|
#include "gl/textures/gl_material.h"
|
||||||
#include "gl/textures/gl_samplers.h"
|
#include "gl/textures/gl_samplers.h"
|
||||||
#include "gl/textures/gl_translate.h"
|
|
||||||
#include "gl/models/gl_models.h"
|
#include "gl/models/gl_models.h"
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
@ -513,7 +512,8 @@ void gl_PrecacheTexture(uint8_t *texhitlist, TMap<PClassActor*, bool> &actorhitl
|
||||||
while (it.NextPair(pair))
|
while (it.NextPair(pair))
|
||||||
{
|
{
|
||||||
PClassActor *cls = pair->Key;
|
PClassActor *cls = pair->Key;
|
||||||
int gltrans = GLTranslationPalette::GetInternalTranslation(GetDefaultByType(cls)->Translation);
|
auto remap = TranslationToTable(GetDefaultByType(cls)->Translation);
|
||||||
|
int gltrans = remap == nullptr ? 0 : remap->GetUniqueIndex();
|
||||||
|
|
||||||
for (unsigned i = 0; i < cls->GetStateCount(); i++)
|
for (unsigned i = 0; i < cls->GetStateCount(); i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,78 +0,0 @@
|
||||||
//
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// Copyright(C) 2007-2016 Christoph Oelckers
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
//
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU Lesser General Public License for more details.
|
|
||||||
//
|
|
||||||
// You should have received a copy of the GNU Lesser General Public License
|
|
||||||
// along with this program. If not, see http://www.gnu.org/licenses/
|
|
||||||
//
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
/*
|
|
||||||
** gl_translate.cpp
|
|
||||||
** GL-related translation stuff
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "doomtype.h"
|
|
||||||
#include "r_data/r_translate.h"
|
|
||||||
#include "gl/textures/gl_translate.h"
|
|
||||||
#include "m_crc32.h"
|
|
||||||
|
|
||||||
TArray<GLTranslationPalette::PalData> GLTranslationPalette::AllPalettes;
|
|
||||||
|
|
||||||
|
|
||||||
GLTranslationPalette *GLTranslationPalette::CreatePalette(FRemapTable *remap)
|
|
||||||
{
|
|
||||||
GLTranslationPalette *p = new GLTranslationPalette(remap);
|
|
||||||
p->Update();
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GLTranslationPalette::Update()
|
|
||||||
{
|
|
||||||
PalData pd;
|
|
||||||
|
|
||||||
memset(pd.pe, 0, sizeof(pd.pe));
|
|
||||||
memcpy(pd.pe, remap->Palette, remap->NumEntries * sizeof(*remap->Palette));
|
|
||||||
pd.crc32 = CalcCRC32((uint8_t*)pd.pe, sizeof(pd.pe));
|
|
||||||
for(unsigned int i=0;i< AllPalettes.Size(); i++)
|
|
||||||
{
|
|
||||||
if (pd.crc32 == AllPalettes[i].crc32)
|
|
||||||
{
|
|
||||||
if (!memcmp(pd.pe, AllPalettes[i].pe, sizeof(pd.pe)))
|
|
||||||
{
|
|
||||||
Index = 1+i;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Index = 1+AllPalettes.Push(pd);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
int GLTranslationPalette::GetInternalTranslation(FRemapTable *remap)
|
|
||||||
{
|
|
||||||
if (remap == nullptr || remap->Inactive) return 0;
|
|
||||||
|
|
||||||
GLTranslationPalette *tpal = static_cast<GLTranslationPalette*>(remap->GetNative());
|
|
||||||
if (tpal == nullptr) return 0;
|
|
||||||
return tpal->GetIndex();
|
|
||||||
}
|
|
||||||
|
|
||||||
int GLTranslationPalette::GetInternalTranslation(int trans)
|
|
||||||
{
|
|
||||||
if (trans <= 0) return 0;
|
|
||||||
return GetInternalTranslation(TranslationToTable(trans));
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
#ifndef __GL_TRANSLATE__
|
|
||||||
#define __GL_TRANSLATE__
|
|
||||||
|
|
||||||
#include "doomtype.h"
|
|
||||||
#include "v_video.h"
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
TRANSLATION_ICE = -1,
|
|
||||||
TRANSLATION_INTENSITY = -2,
|
|
||||||
TRANSLATION_SHADE = -3,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class GLTranslationPalette : public FNativePalette
|
|
||||||
{
|
|
||||||
struct PalData
|
|
||||||
{
|
|
||||||
int crc32;
|
|
||||||
PalEntry pe[256];
|
|
||||||
};
|
|
||||||
static TArray<PalData> AllPalettes;
|
|
||||||
|
|
||||||
int Index;
|
|
||||||
FRemapTable *remap;
|
|
||||||
|
|
||||||
GLTranslationPalette(FRemapTable *r) { remap=r; Index=-1; }
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
static GLTranslationPalette *CreatePalette(FRemapTable *remap);
|
|
||||||
static int GetInternalTranslation(int trans);
|
|
||||||
static int GetInternalTranslation(FRemapTable *trans);
|
|
||||||
static PalEntry *GetPalette(unsigned int index)
|
|
||||||
{
|
|
||||||
return index > 0 && index <= AllPalettes.Size()? AllPalettes[index-1].pe : NULL;
|
|
||||||
}
|
|
||||||
bool Update();
|
|
||||||
int GetIndex() const { return Index; }
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -52,6 +52,7 @@
|
||||||
#include "r_state.h"
|
#include "r_state.h"
|
||||||
#include "vm.h"
|
#include "vm.h"
|
||||||
#include "v_text.h"
|
#include "v_text.h"
|
||||||
|
#include "m_crc32.h"
|
||||||
|
|
||||||
#include "gi.h"
|
#include "gi.h"
|
||||||
#include "stats.h"
|
#include "stats.h"
|
||||||
|
@ -103,6 +104,38 @@ static bool IndexOutOfRange(const int start1, const int end1, const int start2,
|
||||||
return IndexOutOfRange(start2, end2) || outOfRange;
|
return IndexOutOfRange(start2, end2) || outOfRange;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TArray<FUniquePalette::PalData> FUniquePalette::AllPalettes;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Helper class to deal with frequently changing translations from ACS
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
bool FUniquePalette::Update()
|
||||||
|
{
|
||||||
|
PalData pd;
|
||||||
|
|
||||||
|
memset(pd.pe, 0, sizeof(pd.pe));
|
||||||
|
memcpy(pd.pe, remap->Palette, remap->NumEntries * sizeof(*remap->Palette));
|
||||||
|
pd.crc32 = CalcCRC32((uint8_t*)pd.pe, sizeof(pd.pe));
|
||||||
|
for (unsigned int i = 0; i< AllPalettes.Size(); i++)
|
||||||
|
{
|
||||||
|
if (pd.crc32 == AllPalettes[i].crc32)
|
||||||
|
{
|
||||||
|
if (!memcmp(pd.pe, AllPalettes[i].pe, sizeof(pd.pe)))
|
||||||
|
{
|
||||||
|
Index = 1 + i;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Index = 1 + AllPalettes.Push(pd);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/****************************************************/
|
/****************************************************/
|
||||||
/****************************************************/
|
/****************************************************/
|
||||||
|
|
||||||
|
@ -133,6 +166,23 @@ FRemapTable::~FRemapTable()
|
||||||
//
|
//
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
int FRemapTable::GetUniqueIndex()
|
||||||
|
{
|
||||||
|
if (Inactive) return 0;
|
||||||
|
if (Native == nullptr)
|
||||||
|
{
|
||||||
|
Native = new FUniquePalette(this);
|
||||||
|
Native->Update();
|
||||||
|
}
|
||||||
|
return Native->GetIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
void FRemapTable::Alloc(int count)
|
void FRemapTable::Alloc(int count)
|
||||||
{
|
{
|
||||||
Remap = (uint8_t *)M_Malloc(count*sizeof(*Remap) + count*sizeof(*Palette));
|
Remap = (uint8_t *)M_Malloc(count*sizeof(*Remap) + count*sizeof(*Palette));
|
||||||
|
@ -356,21 +406,6 @@ void FRemapTable::UpdateNative()
|
||||||
//
|
//
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
FNativePalette *FRemapTable::GetNative()
|
|
||||||
{
|
|
||||||
if (Native == NULL)
|
|
||||||
{
|
|
||||||
Native = screen->CreatePalette(this);
|
|
||||||
}
|
|
||||||
return Native;
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
bool FRemapTable::AddIndexRange(int start, int end, int pal1, int pal2)
|
bool FRemapTable::AddIndexRange(int start, int end, int pal1, int pal2)
|
||||||
{
|
{
|
||||||
if (IndexOutOfRange(start, end, pal1, pal2))
|
if (IndexOutOfRange(start, end, pal1, pal2))
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
#include "doomtype.h"
|
#include "doomtype.h"
|
||||||
#include "tarray.h"
|
#include "tarray.h"
|
||||||
|
|
||||||
class FNativePalette;
|
|
||||||
class FSerializer;
|
class FSerializer;
|
||||||
|
|
||||||
enum
|
enum
|
||||||
|
@ -31,6 +30,34 @@ enum EStandardTranslations
|
||||||
STD_Grayscale = 9, // desaturated version of the palette.
|
STD_Grayscale = 9, // desaturated version of the palette.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct FRemapTable;
|
||||||
|
|
||||||
|
class FUniquePalette
|
||||||
|
{
|
||||||
|
friend struct FRemapTable;
|
||||||
|
struct PalData
|
||||||
|
{
|
||||||
|
int crc32;
|
||||||
|
PalEntry pe[256];
|
||||||
|
};
|
||||||
|
static TArray<PalData> AllPalettes;
|
||||||
|
|
||||||
|
int Index;
|
||||||
|
FRemapTable *remap;
|
||||||
|
|
||||||
|
FUniquePalette(FRemapTable *r) { remap = r; Index = -1; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
static PalEntry *GetPalette(unsigned int index)
|
||||||
|
{
|
||||||
|
return index > 0 && index <= AllPalettes.Size() ? AllPalettes[index - 1].pe : NULL;
|
||||||
|
}
|
||||||
|
bool Update();
|
||||||
|
int GetIndex() const { return Index; }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
struct FRemapTable
|
struct FRemapTable
|
||||||
{
|
{
|
||||||
FRemapTable(int count=256);
|
FRemapTable(int count=256);
|
||||||
|
@ -42,7 +69,6 @@ struct FRemapTable
|
||||||
void MakeIdentity();
|
void MakeIdentity();
|
||||||
void KillNative();
|
void KillNative();
|
||||||
void UpdateNative();
|
void UpdateNative();
|
||||||
FNativePalette *GetNative();
|
|
||||||
bool IsIdentity() const;
|
bool IsIdentity() const;
|
||||||
void Serialize(FSerializer &arc);
|
void Serialize(FSerializer &arc);
|
||||||
static void StaticSerializeTranslations(FSerializer &arc);
|
static void StaticSerializeTranslations(FSerializer &arc);
|
||||||
|
@ -53,10 +79,11 @@ struct FRemapTable
|
||||||
bool AddTint(int start, int end, int r, int g, int b, int amount);
|
bool AddTint(int start, int end, int r, int g, int b, int amount);
|
||||||
bool AddToTranslation(const char * range);
|
bool AddToTranslation(const char * range);
|
||||||
int StoreTranslation(int slot);
|
int StoreTranslation(int slot);
|
||||||
|
int GetUniqueIndex();
|
||||||
|
|
||||||
uint8_t *Remap; // For the software renderer
|
uint8_t *Remap; // For the software renderer
|
||||||
PalEntry *Palette; // The ideal palette this maps to
|
PalEntry *Palette; // The ideal palette this maps to
|
||||||
FNativePalette *Native; // The Palette stored in a HW texture
|
FUniquePalette *Native; // The index into the list of unique palettes (this is to avoid frequent texture recreation with changing ACS translations)
|
||||||
int NumEntries; // # of elements in this table (usually 256)
|
int NumEntries; // # of elements in this table (usually 256)
|
||||||
bool Inactive; // This table is inactive and should be treated as if it was passed as NULL
|
bool Inactive; // This table is inactive and should be treated as if it was passed as NULL
|
||||||
|
|
||||||
|
|
|
@ -882,19 +882,6 @@ void DFrameBuffer::DrawBlendingRect()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//==========================================================================
|
|
||||||
//
|
|
||||||
// DFrameBuffer :: CreatePalette
|
|
||||||
//
|
|
||||||
// Creates a native palette from a remap table, if supported.
|
|
||||||
//
|
|
||||||
//==========================================================================
|
|
||||||
|
|
||||||
FNativePalette *DFrameBuffer::CreatePalette(FRemapTable *remap)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
// DFrameBuffer :: WipeStartScreen
|
// DFrameBuffer :: WipeStartScreen
|
||||||
|
@ -958,17 +945,6 @@ void DFrameBuffer::GameRestart()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//===========================================================================
|
|
||||||
|
|
||||||
FNativePalette::~FNativePalette()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CCMD(clean)
|
CCMD(clean)
|
||||||
{
|
{
|
||||||
Printf ("CleanXfac: %d\nCleanYfac: %d\n", CleanXfac, CleanYfac);
|
Printf ("CleanXfac: %d\nCleanYfac: %d\n", CleanXfac, CleanYfac);
|
||||||
|
|
|
@ -260,13 +260,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// This class represents a texture lookup palette.
|
class FUniquePalette;
|
||||||
class FNativePalette
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~FNativePalette();
|
|
||||||
virtual bool Update() = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
// A canvas that represents the actual display. The video code is responsible
|
// A canvas that represents the actual display. The video code is responsible
|
||||||
// for actually implementing this. Built on top of SimpleCanvas, because it
|
// for actually implementing this. Built on top of SimpleCanvas, because it
|
||||||
|
@ -369,9 +363,6 @@ public:
|
||||||
// accelerated 2D mode.
|
// accelerated 2D mode.
|
||||||
virtual void DrawBlendingRect();
|
virtual void DrawBlendingRect();
|
||||||
|
|
||||||
// Create a palette texture from a remap/palette table.
|
|
||||||
virtual FNativePalette *CreatePalette(FRemapTable *remap);
|
|
||||||
|
|
||||||
// Precaches or unloads a texture
|
// Precaches or unloads a texture
|
||||||
|
|
||||||
// Report a game restart
|
// Report a game restart
|
||||||
|
|
Loading…
Reference in a new issue