mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-26 22:11:43 +00:00
- generate vertices for skybox sectors in the processing pass.
Aside from the sprites this was the only other remaining use of FQuadDrawer.
This commit is contained in:
parent
e5ff500c5a
commit
00c8c6e3b2
3 changed files with 12 additions and 25 deletions
|
@ -201,24 +201,6 @@ void FDrawInfo::ClearFloodStencil(int vindex)
|
|||
gl_RenderState.SetEffect(EFF_NONE);
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void FDrawInfo::DrawSkyboxSector(GLFlat *flat, int pass)
|
||||
{
|
||||
FQuadDrawer qd;
|
||||
flat->CreateSkyboxVertices(qd.Pointer());
|
||||
gl_RenderState.ApplyLightIndex(flat->dynlightindex);
|
||||
qd.Render(GL_TRIANGLE_FAN);
|
||||
|
||||
flatvertices += 4;
|
||||
flatprimitives++;
|
||||
}
|
||||
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
|
@ -248,7 +230,10 @@ void FDrawInfo::DrawFlat(GLFlat *flat, int pass, bool trans) // trans only has m
|
|||
else
|
||||
{
|
||||
gl_RenderState.SetMaterial(flat->gltexture, CLAMP_XY, 0, -1, false);
|
||||
DrawSkyboxSector(flat, pass);
|
||||
gl_RenderState.ApplyLightIndex(flat->dynlightindex);
|
||||
glDrawArrays(GL_TRIANGLE_FAN, flat->iboindex, 4);
|
||||
flatvertices += 4;
|
||||
flatprimitives++;
|
||||
}
|
||||
gl_RenderState.SetObjectColor(0xffffffff);
|
||||
break;
|
||||
|
|
|
@ -295,7 +295,6 @@ class GLFlat
|
|||
{
|
||||
public:
|
||||
sector_t * sector;
|
||||
float dz; // z offset for rendering hacks
|
||||
float z; // the z position of the flat (only valid for non-sloped planes)
|
||||
FMaterial *gltexture;
|
||||
|
||||
|
@ -351,6 +350,7 @@ public:
|
|||
uint8_t foglevel;
|
||||
uint8_t hw_styleflags;
|
||||
bool fullbright;
|
||||
bool polyoffset;
|
||||
PalEntry ThingColor; // thing's own color
|
||||
FColormap Colormap;
|
||||
FSpriteModelFrame * modelframe;
|
||||
|
|
|
@ -118,7 +118,6 @@ void GLFlat::CreateSkyboxVertices(FFlatVertex *vert)
|
|||
if (y > maxy) maxy = y;
|
||||
}
|
||||
|
||||
float z = plane.plane.ZatPoint(0., 0.) + dz;
|
||||
static float uvals[] = { 0, 0, 1, 1 };
|
||||
static float vvals[] = { 1, 0, 0, 1 };
|
||||
int rot = -xs_FloorToInt(plane.Angle / 90.f);
|
||||
|
@ -231,11 +230,14 @@ void GLFlat::Process(HWDrawInfo *di, sector_t * model, int whichplane, bool fog)
|
|||
lightlevel = abs(lightlevel);
|
||||
}
|
||||
|
||||
// get height from vplane
|
||||
if (whichplane == sector_t::floor && sector->transdoor) dz = -1;
|
||||
else dz = 0;
|
||||
|
||||
z = plane.plane.ZatPoint(0.f, 0.f);
|
||||
if (sector->special == GLSector_Skybox)
|
||||
{
|
||||
auto vert = di->AllocVertices(4);
|
||||
CreateSkyboxVertices(vert.first);
|
||||
iboindex = vert.second;
|
||||
}
|
||||
|
||||
|
||||
PutFlat(di, fog);
|
||||
rendered_flats++;
|
||||
|
|
Loading…
Reference in a new issue