mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2025-07-03 06:24:32 +00:00
Move CombinedRenderAndGPUState up one level
This commit is contained in:
parent
d31d320719
commit
f9a91e87e4
6 changed files with 14 additions and 12 deletions
|
@ -1792,6 +1792,8 @@ void Core::render(int startLayer, int endLayer, bool useFrameBufferIfAvail)
|
|||
|
||||
setupRenderPositionAndScale();
|
||||
|
||||
CombinedRenderAndGPUState rs;
|
||||
|
||||
|
||||
for (size_t c = 0; c < renderObjectLayerOrder.size(); c++)
|
||||
{
|
||||
|
@ -1815,14 +1817,14 @@ void Core::render(int startLayer, int endLayer, bool useFrameBufferIfAvail)
|
|||
|
||||
if (afterEffectManager && afterEffectManager->active && i == afterEffectManagerLayer)
|
||||
{
|
||||
afterEffectManager->render();
|
||||
afterEffectManager->render(rs);
|
||||
}
|
||||
|
||||
RenderObjectLayer *r = &renderObjectLayers[i];
|
||||
if(!r->visible)
|
||||
continue;
|
||||
|
||||
r->render();
|
||||
r->render(rs);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -126,7 +126,7 @@ public:
|
|||
void reloadDevice();
|
||||
|
||||
void prepareRender();
|
||||
void render() const;
|
||||
void render(const RenderState& rs) const;
|
||||
|
||||
inline bool empty()
|
||||
{
|
||||
|
|
|
@ -223,7 +223,7 @@ void Quad::renderGrid(const RenderState& rs) const
|
|||
if (RenderObject::renderCollisionShape)
|
||||
{
|
||||
glBindTexture(GL_TEXTURE_2D, 0);
|
||||
grid->renderDebugPoints(rx);
|
||||
grid->renderDebugPoints(rs);
|
||||
RenderObject::lastTextureApplied = 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -127,8 +127,7 @@ void RenderGrid::render(const RenderState& rs) const
|
|||
|
||||
void RenderGrid::renderDebugPoints(const RenderState& rs) const
|
||||
{
|
||||
(void)rs; // unused
|
||||
|
||||
(void)rs; // unused yet
|
||||
glPointSize(2);
|
||||
glColor3f(1,0,0);
|
||||
vbo.apply();
|
||||
|
|
|
@ -240,17 +240,16 @@ void RenderObjectLayer::prepareRender()
|
|||
}
|
||||
}
|
||||
|
||||
void RenderObjectLayer::render() const
|
||||
void RenderObjectLayer::render(const RenderState& rs) const
|
||||
{
|
||||
if(toRender.size() <= 1)
|
||||
return;
|
||||
|
||||
size_t proc = 0;
|
||||
CombinedRenderAndGPUState rs;
|
||||
|
||||
if (startPass == endPass)
|
||||
{
|
||||
rs.pass = RenderObject::RENDER_ALL;
|
||||
assert(rs.pass == RenderObject::RENDER_ALL);
|
||||
const RenderObject * const * rlist = &toRender[0]; // known to have at least one element
|
||||
while(const RenderObject *ro = *rlist++)
|
||||
ro->render(rs);
|
||||
|
@ -258,14 +257,15 @@ void RenderObjectLayer::render() const
|
|||
}
|
||||
else
|
||||
{
|
||||
RenderState rx(rs);
|
||||
for (int pass = startPass; pass <= endPass; pass++)
|
||||
{
|
||||
rs.pass = pass;
|
||||
rx.pass = pass;
|
||||
const RenderObject * const * rlist = &toRender[0]; // known to have at least one element
|
||||
while(const RenderObject *ro = *rlist++)
|
||||
if(ro->isVisibleInPass(pass))
|
||||
{
|
||||
ro->render(rs);
|
||||
ro->render(rx);
|
||||
++proc;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
#include "RenderState.h"
|
||||
#include "Base.h"
|
||||
#include "RenderBase.h"
|
||||
#include "RenderObject.h"
|
||||
|
||||
|
||||
RenderState::RenderState(GPUState &gpu)
|
||||
: gpu(gpu), color(1,1,1), scale(1,1), alpha(1), pass(0)
|
||||
: gpu(gpu), color(1,1,1), scale(1,1), alpha(1), pass(RenderObject::RENDER_ALL)
|
||||
, forceRenderBorder(false), forceRenderCenter(false), renderBorderAlpha(1)
|
||||
{
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue