mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-12-01 08:31:45 +00:00
- removed all GL dependencies from gl_material.h.
This commit is contained in:
parent
5e8a4b96fe
commit
f9a82e66e4
11 changed files with 29 additions and 25 deletions
|
@ -49,6 +49,7 @@
|
||||||
#include "gl/shaders/gl_presentshader.h"
|
#include "gl/shaders/gl_presentshader.h"
|
||||||
#include "gl/shaders/gl_postprocessshaderinstance.h"
|
#include "gl/shaders/gl_postprocessshaderinstance.h"
|
||||||
#include "gl/stereo3d/gl_stereo3d.h"
|
#include "gl/stereo3d/gl_stereo3d.h"
|
||||||
|
#include "gl/textures/gl_hwtexture.h"
|
||||||
#include "r_videoscale.h"
|
#include "r_videoscale.h"
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
#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/renderer/gl_renderer.h"
|
#include "gl/renderer/gl_renderer.h"
|
||||||
|
#include "gl/renderer/gl_colormap.h"
|
||||||
#include "gl/dynlights//gl_lightbuffer.h"
|
#include "gl/dynlights//gl_lightbuffer.h"
|
||||||
#include "gl/renderer/gl_renderbuffers.h"
|
#include "gl/renderer/gl_renderbuffers.h"
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "gl/system/gl_debug.h"
|
#include "gl/system/gl_debug.h"
|
||||||
#include "gl/data/gl_vertexbuffer.h"
|
#include "gl/data/gl_vertexbuffer.h"
|
||||||
#include "gl/shaders/gl_shader.h"
|
#include "gl/shaders/gl_shader.h"
|
||||||
|
#include "gl/textures/gl_hwtexture.h"
|
||||||
#include "gl_swscene.h"
|
#include "gl_swscene.h"
|
||||||
#include "w_wad.h"
|
#include "w_wad.h"
|
||||||
#include "d_player.h"
|
#include "d_player.h"
|
||||||
|
|
|
@ -116,8 +116,8 @@ public:
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
//GLWF_CLAMPX=1, use GLT_* for these!
|
GLWF_CLAMPX=1,
|
||||||
//GLWF_CLAMPY=2,
|
GLWF_CLAMPY=2,
|
||||||
GLWF_SKYHACK=4,
|
GLWF_SKYHACK=4,
|
||||||
GLWF_GLOW=8, // illuminated by glowing flats
|
GLWF_GLOW=8, // illuminated by glowing flats
|
||||||
GLWF_NOSPLITUPPER=16,
|
GLWF_NOSPLITUPPER=16,
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
#include "hwrenderer/dynlights/hw_dynlightdata.h"
|
#include "hwrenderer/dynlights/hw_dynlightdata.h"
|
||||||
|
|
||||||
#include "gl/system/gl_cvars.h"
|
#include "gl/system/gl_cvars.h"
|
||||||
|
#include "gl/system/gl_interface.h"
|
||||||
#include "gl/renderer/gl_lightdata.h"
|
#include "gl/renderer/gl_lightdata.h"
|
||||||
#include "gl/scene/gl_drawinfo.h"
|
#include "gl/scene/gl_drawinfo.h"
|
||||||
#include "gl/scene/gl_portal.h"
|
#include "gl/scene/gl_portal.h"
|
||||||
|
@ -601,7 +602,7 @@ bool GLWall::SetWallCoordinates(seg_t * seg, FTexCoordInfo *tci, float textureto
|
||||||
{
|
{
|
||||||
bool normalize = false;
|
bool normalize = false;
|
||||||
if (gltexture->tex->bHasCanvas) normalize = true;
|
if (gltexture->tex->bHasCanvas) normalize = true;
|
||||||
else if (flags & GLT_CLAMPY)
|
else if (flags & GLWF_CLAMPY)
|
||||||
{
|
{
|
||||||
// for negative scales we can get negative coordinates here.
|
// for negative scales we can get negative coordinates here.
|
||||||
normalize = (tcs[UPLFT].v > tcs[LOLFT].v || tcs[UPRGT].v > tcs[LORGT].v);
|
normalize = (tcs[UPLFT].v > tcs[LOLFT].v || tcs[UPRGT].v > tcs[LORGT].v);
|
||||||
|
@ -651,7 +652,7 @@ void GLWall::CheckTexturePosition(FTexCoordInfo *tci)
|
||||||
if ((tcs[UPLFT].v == 0.f && tcs[UPRGT].v == 0.f && tcs[LOLFT].v <= 1.f && tcs[LORGT].v <= 1.f) ||
|
if ((tcs[UPLFT].v == 0.f && tcs[UPRGT].v == 0.f && tcs[LOLFT].v <= 1.f && tcs[LORGT].v <= 1.f) ||
|
||||||
(tcs[UPLFT].v >= 0.f && tcs[UPRGT].v >= 0.f && tcs[LOLFT].v == 1.f && tcs[LORGT].v == 1.f))
|
(tcs[UPLFT].v >= 0.f && tcs[UPRGT].v >= 0.f && tcs[LOLFT].v == 1.f && tcs[LORGT].v == 1.f))
|
||||||
{
|
{
|
||||||
flags |= GLT_CLAMPY;
|
flags |= GLWF_CLAMPY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -672,7 +673,7 @@ void GLWall::CheckTexturePosition(FTexCoordInfo *tci)
|
||||||
if ((tcs[LOLFT].v == 0.f && tcs[LORGT].v == 0.f && tcs[UPLFT].v <= 1.f && tcs[UPRGT].v <= 1.f) ||
|
if ((tcs[LOLFT].v == 0.f && tcs[LORGT].v == 0.f && tcs[UPLFT].v <= 1.f && tcs[UPRGT].v <= 1.f) ||
|
||||||
(tcs[LOLFT].v >= 0.f && tcs[LORGT].v >= 0.f && tcs[UPLFT].v == 1.f && tcs[UPRGT].v == 1.f))
|
(tcs[LOLFT].v >= 0.f && tcs[LORGT].v >= 0.f && tcs[UPLFT].v == 1.f && tcs[UPRGT].v == 1.f))
|
||||||
{
|
{
|
||||||
flags |= GLT_CLAMPY;
|
flags |= GLWF_CLAMPY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -688,7 +689,7 @@ void GLWall::CheckTexturePosition(FTexCoordInfo *tci)
|
||||||
if ((tcs[UPLFT].u == 0.f && tcs[LOLFT].u == 0.f && tcs[UPRGT].u <= 1.f && tcs[LORGT].u <= 1.f) ||
|
if ((tcs[UPLFT].u == 0.f && tcs[LOLFT].u == 0.f && tcs[UPRGT].u <= 1.f && tcs[LORGT].u <= 1.f) ||
|
||||||
(tcs[UPLFT].u >= 0.f && tcs[LOLFT].u >= 0.f && tcs[UPRGT].u == 1.f && tcs[LORGT].u == 1.f))
|
(tcs[UPLFT].u >= 0.f && tcs[LOLFT].u >= 0.f && tcs[UPRGT].u == 1.f && tcs[LORGT].u == 1.f))
|
||||||
{
|
{
|
||||||
flags |= GLT_CLAMPX;
|
flags |= GLWF_CLAMPX;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -941,15 +942,15 @@ void GLWall::DoMidTexture(seg_t * seg, bool drawfogboundary,
|
||||||
if ((textureoffset == 0 && righttex <= tci.mRenderWidth) ||
|
if ((textureoffset == 0 && righttex <= tci.mRenderWidth) ||
|
||||||
(textureoffset >= 0 && righttex == tci.mRenderWidth))
|
(textureoffset >= 0 && righttex == tci.mRenderWidth))
|
||||||
{
|
{
|
||||||
flags |= GLT_CLAMPX;
|
flags |= GLWF_CLAMPX;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
flags &= ~GLT_CLAMPX;
|
flags &= ~GLWF_CLAMPX;
|
||||||
}
|
}
|
||||||
if (!wrap)
|
if (!wrap)
|
||||||
{
|
{
|
||||||
flags |= GLT_CLAMPY;
|
flags |= GLWF_CLAMPY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mirrory)
|
if (mirrory)
|
||||||
|
@ -1081,7 +1082,7 @@ void GLWall::DoMidTexture(seg_t * seg, bool drawfogboundary,
|
||||||
}
|
}
|
||||||
// restore some values that have been altered in this function
|
// restore some values that have been altered in this function
|
||||||
glseg=glsave;
|
glseg=glsave;
|
||||||
flags&=~(GLT_CLAMPX|GLT_CLAMPY|GLWF_NOSPLITUPPER|GLWF_NOSPLITLOWER);
|
flags&=~(GLWF_CLAMPX|GLWF_CLAMPY|GLWF_NOSPLITUPPER|GLWF_NOSPLITLOWER);
|
||||||
RenderStyle = STYLE_Normal;
|
RenderStyle = STYLE_Normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1192,7 +1193,7 @@ void GLWall::BuildFFBlock(seg_t * seg, F3DFloor * rover,
|
||||||
alpha = 1.0f;
|
alpha = 1.0f;
|
||||||
lightlevel = savelight;
|
lightlevel = savelight;
|
||||||
Colormap = savecolor;
|
Colormap = savecolor;
|
||||||
flags &= ~GLT_CLAMPY;
|
flags &= ~GLWF_CLAMPY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -327,7 +327,7 @@ void GLWall::RenderTextured(int rflags)
|
||||||
|
|
||||||
if (type == RENDERWALL_M2SNF)
|
if (type == RENDERWALL_M2SNF)
|
||||||
{
|
{
|
||||||
if (flags & GLT_CLAMPY)
|
if (flags & GLWF_CLAMPY)
|
||||||
{
|
{
|
||||||
if (tmode == TM_MODULATE) gl_RenderState.SetTextureMode(TM_CLAMPY);
|
if (tmode == TM_MODULATE) gl_RenderState.SetTextureMode(TM_CLAMPY);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
#include "gl/system/gl_cvars.h"
|
#include "gl/system/gl_cvars.h"
|
||||||
#include "gl/system/gl_debug.h"
|
#include "gl/system/gl_debug.h"
|
||||||
#include "gl/renderer/gl_renderer.h"
|
#include "gl/renderer/gl_renderer.h"
|
||||||
|
#include "gl/renderer/gl_colormap.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"
|
||||||
|
|
||||||
|
|
|
@ -16,18 +16,13 @@ class FCanvasTexture;
|
||||||
class AActor;
|
class AActor;
|
||||||
typedef TMap<int, bool> SpriteHits;
|
typedef TMap<int, bool> SpriteHits;
|
||||||
|
|
||||||
|
|
||||||
// For error catching while changing parameters.
|
// For error catching while changing parameters.
|
||||||
enum EInvalid
|
enum EInvalid
|
||||||
{
|
{
|
||||||
Invalid = 0
|
Invalid = 0
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
GLT_CLAMPX=1,
|
|
||||||
GLT_CLAMPY=2
|
|
||||||
};
|
|
||||||
|
|
||||||
class FHardwareTexture
|
class FHardwareTexture
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#include "gl/system/gl_interface.h"
|
#include "gl/system/gl_interface.h"
|
||||||
#include "gl/system/gl_framebuffer.h"
|
#include "gl/system/gl_framebuffer.h"
|
||||||
#include "gl/renderer/gl_renderer.h"
|
#include "gl/renderer/gl_renderer.h"
|
||||||
|
#include "gl/textures/gl_hwtexture.h"
|
||||||
#include "gl/textures/gl_material.h"
|
#include "gl/textures/gl_material.h"
|
||||||
#include "gl/shaders/gl_shader.h"
|
#include "gl/shaders/gl_shader.h"
|
||||||
|
|
||||||
|
@ -634,7 +635,7 @@ void FMaterial::FlushAll()
|
||||||
{
|
{
|
||||||
for(int i=mMaterials.Size()-1;i>=0;i--)
|
for(int i=mMaterials.Size()-1;i>=0;i--)
|
||||||
{
|
{
|
||||||
mMaterials[i]->Clean(true);
|
mMaterials[i]->mBaseLayer->Clean(true);
|
||||||
}
|
}
|
||||||
// This is for shader layers. All shader layers must be managed by the texture manager
|
// This is for shader layers. All shader layers must be managed by the texture manager
|
||||||
// so this will catch everything.
|
// so this will catch everything.
|
||||||
|
@ -652,3 +653,9 @@ void FMaterial::ClearLastTexture()
|
||||||
{
|
{
|
||||||
last = NULL;
|
last = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FMaterial::Clean(bool f)
|
||||||
|
{
|
||||||
|
// This somehow needs to deal with the other layers as well, but they probably need some form of reference counting to work properly...
|
||||||
|
mBaseLayer->Clean(f);
|
||||||
|
}
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
|
|
||||||
#include "m_fixed.h"
|
#include "m_fixed.h"
|
||||||
#include "textures/textures.h"
|
#include "textures/textures.h"
|
||||||
#include "gl/textures/gl_hwtexture.h"
|
|
||||||
#include "gl/renderer/gl_colormap.h"
|
|
||||||
#include "i_system.h"
|
#include "i_system.h"
|
||||||
#include "r_defs.h"
|
#include "r_defs.h"
|
||||||
|
|
||||||
|
@ -112,10 +110,7 @@ public:
|
||||||
|
|
||||||
void Bind(int clamp, int translation);
|
void Bind(int clamp, int translation);
|
||||||
|
|
||||||
void Clean(bool f)
|
void Clean(bool f);
|
||||||
{
|
|
||||||
mBaseLayer->Clean(f);
|
|
||||||
}
|
|
||||||
|
|
||||||
void BindToFrameBuffer();
|
void BindToFrameBuffer();
|
||||||
// Patch drawing utilities
|
// Patch drawing utilities
|
||||||
|
|
|
@ -44,6 +44,8 @@
|
||||||
#include "r_data/r_translate.h"
|
#include "r_data/r_translate.h"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
typedef TMap<int, bool> SpriteHits;
|
||||||
|
|
||||||
enum MaterialShaderIndex
|
enum MaterialShaderIndex
|
||||||
{
|
{
|
||||||
SHADER_Default,
|
SHADER_Default,
|
||||||
|
|
Loading…
Reference in a new issue