Deprecate matrix4x4d renderer methods, add better Viewport handling
parent
0d1cca4cd1
commit
4d3fcb5b84
|
@ -543,7 +543,7 @@ namespace Background {
|
|||
void Container::Draw(const matrix4x4d &transform)
|
||||
{
|
||||
PROFILE_SCOPED()
|
||||
m_renderer->SetTransform(transform);
|
||||
m_renderer->SetTransform(matrix4x4f(transform));
|
||||
if (DRAW_SKYBOX & m_drawFlags) {
|
||||
m_universeBox.Draw(m_renderState);
|
||||
}
|
||||
|
@ -551,7 +551,7 @@ namespace Background {
|
|||
m_milkyWay.Draw(m_renderState);
|
||||
}
|
||||
if (DRAW_STARS & m_drawFlags) {
|
||||
m_renderer->SetTransform(transform);
|
||||
m_renderer->SetTransform(matrix4x4f(transform));
|
||||
m_starField.Draw(m_renderState);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ void BaseSphere::DrawAtmosphereSurface(Graphics::Renderer *renderer,
|
|||
const vector3d xaxis = yaxis.Cross(zaxis);
|
||||
const matrix4x4d invrot = matrix4x4d::MakeRotMatrix(xaxis, yaxis, zaxis).Inverse();
|
||||
|
||||
renderer->SetTransform(modelView * matrix4x4d::ScaleMatrix(rad) * invrot);
|
||||
renderer->SetTransform(matrix4x4f(modelView * matrix4x4d::ScaleMatrix(rad) * invrot));
|
||||
|
||||
if (!m_atmos)
|
||||
m_atmos.reset(new Drawables::Sphere3D(renderer, mat, rs, 4, 1.0f, ATTRIB_POSITION));
|
||||
|
|
|
@ -262,7 +262,7 @@ public:
|
|||
Graphics::RenderState *rs = gasSphere->GetSurfRenderState();
|
||||
|
||||
const vector3d relpos = clipCentroid - campos;
|
||||
renderer->SetTransform(modelView * matrix4x4d::Translation(relpos));
|
||||
renderer->SetTransform(matrix4x4f(modelView * matrix4x4d::Translation(relpos)));
|
||||
|
||||
Pi::statSceneTris += 2 * (ctx->edgeLen - 1) * (ctx->edgeLen - 1);
|
||||
++Pi::statNumPatches;
|
||||
|
@ -666,7 +666,7 @@ void GasGiant::Render(Graphics::Renderer *renderer, const matrix4x4d &modelView,
|
|||
|
||||
matrix4x4d trans = modelView;
|
||||
trans.Translate(-campos.x, -campos.y, -campos.z);
|
||||
renderer->SetTransform(trans); //need to set this for the following line to work
|
||||
renderer->SetTransform(matrix4x4f(trans)); //need to set this for the following line to work
|
||||
matrix4x4d modv = matrix4x4d(renderer->GetTransform());
|
||||
matrix4x4d proj = matrix4x4d(renderer->GetProjection());
|
||||
Graphics::Frustum frustum(modv, proj);
|
||||
|
@ -717,7 +717,7 @@ void GasGiant::Render(Graphics::Renderer *renderer, const matrix4x4d &modelView,
|
|||
|
||||
renderer->SetAmbientColor(ambient);
|
||||
|
||||
renderer->SetTransform(modelView);
|
||||
renderer->SetTransform(matrix4x4f(modelView));
|
||||
|
||||
for (int i = 0; i < NUM_PATCHES; i++) {
|
||||
m_patches[i]->Render(renderer, campos, modelView, frustum);
|
||||
|
|
|
@ -239,17 +239,12 @@ namespace GasGiantJobs {
|
|||
{
|
||||
PROFILE_SCOPED()
|
||||
|
||||
Pi::renderer->SetViewport(0, 0, mData->UVDims(), mData->UVDims());
|
||||
Pi::renderer->SetTransform(matrix4x4f::Identity());
|
||||
|
||||
matrix4x4f savedProj = Pi::renderer->GetProjection();
|
||||
matrix4x4f savedMV = Pi::renderer->GetTransform();
|
||||
Graphics::Renderer::StateTicket ticket(Pi::renderer);
|
||||
|
||||
// enter ortho
|
||||
{
|
||||
Pi::renderer->SetOrthographicProjection(0, mData->UVDims(), mData->UVDims(), 0, -1, 1);
|
||||
Pi::renderer->SetTransform(matrix4x4f::Identity());
|
||||
}
|
||||
Pi::renderer->SetViewport({ 0, 0, mData->UVDims(), mData->UVDims() });
|
||||
Pi::renderer->SetOrthographicProjection(0, mData->UVDims(), mData->UVDims(), 0, -1, 1);
|
||||
Pi::renderer->SetTransform(matrix4x4f::Identity());
|
||||
|
||||
GasGiant::BeginRenderTarget();
|
||||
for (Uint32 iFace = 0; iFace < NUM_PATCHES; iFace++) {
|
||||
|
@ -266,18 +261,14 @@ namespace GasGiantJobs {
|
|||
}
|
||||
GasGiant::EndRenderTarget();
|
||||
|
||||
// leave ortho?
|
||||
{
|
||||
Pi::renderer->SetProjection(savedProj);
|
||||
Pi::renderer->SetTransform(savedMV);
|
||||
}
|
||||
|
||||
// add this patches data
|
||||
SGPUGenResult *sr = new SGPUGenResult();
|
||||
sr->addResult(mData->Texture(), mData->UVDims());
|
||||
|
||||
// store the result
|
||||
mpResults = sr;
|
||||
|
||||
// leave ortho when ticket is destroyed
|
||||
}
|
||||
|
||||
void SingleGPUGenJob::OnFinish() // runs in primary thread of the context
|
||||
|
|
|
@ -291,7 +291,7 @@ void GeoPatch::Render(Graphics::Renderer *renderer, const vector3d &campos, cons
|
|||
Graphics::RenderState *rs = m_geosphere->GetSurfRenderState();
|
||||
|
||||
const vector3d relpos = m_clipCentroid - campos;
|
||||
renderer->SetTransform(modelView * matrix4x4d::Translation(relpos));
|
||||
renderer->SetTransform(matrix4x4f(modelView * matrix4x4d::Translation(relpos)));
|
||||
|
||||
Pi::statSceneTris += (m_ctx->GetNumTris());
|
||||
++Pi::statNumPatches;
|
||||
|
|
|
@ -379,7 +379,7 @@ void GeoSphere::Render(Graphics::Renderer *renderer, const matrix4x4d &modelView
|
|||
|
||||
matrix4x4d trans = modelView;
|
||||
trans.Translate(-campos.x, -campos.y, -campos.z);
|
||||
renderer->SetTransform(trans); //need to set this for the following line to work
|
||||
renderer->SetTransform(matrix4x4f(trans)); //need to set this for the following line to work
|
||||
matrix4x4d modv = matrix4x4d(renderer->GetTransform());
|
||||
matrix4x4d proj = matrix4x4d(renderer->GetProjection());
|
||||
Graphics::Frustum frustum(modv, proj);
|
||||
|
@ -443,7 +443,7 @@ void GeoSphere::Render(Graphics::Renderer *renderer, const matrix4x4d &modelView
|
|||
|
||||
renderer->SetAmbientColor(ambient);
|
||||
|
||||
renderer->SetTransform(modelView);
|
||||
renderer->SetTransform(matrix4x4f(modelView));
|
||||
|
||||
for (int i = 0; i < NUM_PATCHES; i++) {
|
||||
m_patches[i]->Render(renderer, campos, modelView, frustum);
|
||||
|
|
|
@ -77,7 +77,7 @@ void HudTrail::Render(Graphics::Renderer *r)
|
|||
colors.back().a = Uint8(alpha * 255);
|
||||
}
|
||||
|
||||
r->SetTransform(m_transform);
|
||||
r->SetTransform(matrix4x4f(m_transform));
|
||||
m_lines.SetData(tvts.size(), &tvts[0], &colors[0]);
|
||||
m_lines.Draw(r, m_renderState, Graphics::LINE_STRIP);
|
||||
}
|
||||
|
|
|
@ -163,7 +163,7 @@ void HyperspaceCloud::Render(Renderer *renderer, const Camera *camera, const vec
|
|||
vector3d xaxis = vector3d(0, 1, 0).Cross(zaxis).Normalized();
|
||||
vector3d yaxis = zaxis.Cross(xaxis);
|
||||
matrix4x4d rot = matrix4x4d::MakeRotMatrix(xaxis, yaxis, zaxis).Inverse();
|
||||
renderer->SetTransform(trans * rot);
|
||||
renderer->SetTransform(matrix4x4f(trans * rot));
|
||||
|
||||
// precise to the rendered frame (better than PHYSICS_HZ granularity)
|
||||
const double preciseTime = Pi::game->GetTime() + Pi::GetGameTickAlpha() * Pi::game->GetTimeStep();
|
||||
|
|
|
@ -143,7 +143,7 @@ void Intro::Draw(float deltaTime)
|
|||
m_renderer->ClearDepthBuffer();
|
||||
m_background->Draw(brot);
|
||||
|
||||
m_renderer->SetViewport(m_spinnerLeft, 0, m_spinnerWidth, Graphics::GetScreenHeight());
|
||||
m_renderer->SetViewport({ m_spinnerLeft, 0, m_spinnerWidth, Graphics::GetScreenHeight() });
|
||||
m_renderer->SetPerspectiveProjection(75, m_spinnerRatio, 1.f, 10000.f);
|
||||
|
||||
matrix4x4f trans =
|
||||
|
|
|
@ -143,7 +143,8 @@ void ObjectViewerView::Draw3D()
|
|||
body->Render(m_renderer, m_camera.get(), vector3d(0, 0, -viewingDist), m_camRot);
|
||||
|
||||
// industry-standard red/green/blue XYZ axis indiactor
|
||||
m_renderer->SetTransform(matrix4x4d::Translation(vector3d(0, 0, -viewingDist)) * m_camRot * matrix4x4d::ScaleMatrix(body->GetClipRadius() * 2.0));
|
||||
matrix4x4d trans = matrix4x4d::Translation(vector3d(0, 0, -viewingDist)) * m_camRot * matrix4x4d::ScaleMatrix(body->GetClipRadius() * 2.0);
|
||||
m_renderer->SetTransform(matrix4x4f(trans));
|
||||
Graphics::Drawables::GetAxes3DDrawable(m_renderer)->Draw(m_renderer);
|
||||
}
|
||||
|
||||
|
|
|
@ -256,7 +256,7 @@ void Planet::DrawGasGiantRings(Renderer *renderer, const matrix4x4d &modelView)
|
|||
if (!m_ringTexture)
|
||||
GenerateRings(renderer);
|
||||
|
||||
renderer->SetTransform(modelView);
|
||||
renderer->SetTransform(matrix4x4f(modelView));
|
||||
renderer->DrawTriangles(&m_ringVertices, m_ringState, m_ringMaterial.get(), TRIANGLE_STRIP);
|
||||
}
|
||||
|
||||
|
|
|
@ -1014,7 +1014,7 @@ void SectorView::BuildFarSector(RefCountedPtr<Sector> sec, const vector3f &origi
|
|||
|
||||
void SectorView::OnSwitchTo()
|
||||
{
|
||||
m_renderer->SetViewport(0, 0, Graphics::GetScreenWidth(), Graphics::GetScreenHeight());
|
||||
m_renderer->SetViewport({ 0, 0, Graphics::GetScreenWidth(), Graphics::GetScreenHeight() });
|
||||
Pi::input->PushInputFrame(&InputBindings);
|
||||
UIView::OnSwitchTo();
|
||||
Update();
|
||||
|
|
|
@ -130,7 +130,7 @@ void SpeedLines::Render(Graphics::Renderer *r)
|
|||
|
||||
m_vbuffer->Populate(*m_varray);
|
||||
|
||||
r->SetTransform(m_transform);
|
||||
r->SetTransform(matrix4x4f(m_transform));
|
||||
r->DrawBuffer(m_vbuffer.get(), m_renderState, m_material.Get(), Graphics::LINE_SINGLE);
|
||||
}
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@ void Star::Render(Graphics::Renderer *renderer, const Camera *camera, const vect
|
|||
BuildHaloBuffer(renderer, rad);
|
||||
}
|
||||
// scale the halo by the new radius from it's unit size
|
||||
renderer->SetTransform(trans * matrix4x4d::ScaleMatrix(rad) * rot);
|
||||
renderer->SetTransform(matrix4x4f(trans * matrix4x4d::ScaleMatrix(rad) * rot));
|
||||
//render star halo
|
||||
renderer->DrawBuffer(m_haloBuffer.get(), m_haloState, Graphics::vtxColorMaterial, Graphics::TRIANGLE_FAN);
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ void GuiApplication::BeginFrame()
|
|||
m_renderer->SetRenderTarget(m_renderTarget);
|
||||
#endif
|
||||
// TODO: render target size
|
||||
m_renderer->SetViewport(0, 0, Graphics::GetScreenWidth(), Graphics::GetScreenHeight());
|
||||
m_renderer->SetViewport({ 0, 0, Graphics::GetScreenWidth(), Graphics::GetScreenHeight() });
|
||||
m_renderer->BeginFrame();
|
||||
}
|
||||
|
||||
|
|
|
@ -54,6 +54,23 @@ namespace Graphics {
|
|||
int height;
|
||||
};
|
||||
|
||||
// Lightweight representation of viewport bounds to simplify viewport state management
|
||||
struct Viewport {
|
||||
Viewport() :
|
||||
x(0),
|
||||
y(0),
|
||||
w(0),
|
||||
h(0) {}
|
||||
|
||||
Viewport(int32_t _x, int32_t _y, int32_t _w, int32_t _h) :
|
||||
x(_x),
|
||||
y(_y),
|
||||
w(_w),
|
||||
h(_h) {}
|
||||
|
||||
int32_t x, y, w, h;
|
||||
};
|
||||
|
||||
class Material;
|
||||
extern Material *vtxColorMaterial;
|
||||
|
||||
|
|
|
@ -79,10 +79,10 @@ namespace Graphics {
|
|||
virtual bool ClearDepthBuffer() = 0;
|
||||
virtual bool SetClearColor(const Color &c) = 0;
|
||||
|
||||
virtual bool SetViewport(int x, int y, int width, int height) = 0;
|
||||
virtual bool SetViewport(Viewport vp) = 0;
|
||||
virtual Viewport GetViewport() const = 0;
|
||||
|
||||
//set the model view matrix
|
||||
[[deprecated]] virtual bool SetTransform(const matrix4x4d &m) = 0;
|
||||
virtual bool SetTransform(const matrix4x4f &m) = 0;
|
||||
virtual matrix4x4f GetTransform() const = 0;
|
||||
|
||||
|
@ -144,9 +144,6 @@ namespace Graphics {
|
|||
|
||||
virtual bool ReloadShaders() = 0;
|
||||
|
||||
/// XXX at least use a custom structure you heathens
|
||||
[[deprecated]] virtual void GetCurrentViewport(Sint32 *vp) const = 0;
|
||||
|
||||
// take a ticket representing the current renderer state. when the ticket
|
||||
// is deleted, the renderer state is restored
|
||||
// XXX state must die
|
||||
|
@ -156,6 +153,7 @@ namespace Graphics {
|
|||
m_renderer(r)
|
||||
{
|
||||
m_renderer->PushState();
|
||||
m_storedVP = m_renderer->GetViewport();
|
||||
m_storedProj = m_renderer->GetProjection();
|
||||
m_storedMV = m_renderer->GetTransform();
|
||||
}
|
||||
|
@ -163,6 +161,7 @@ namespace Graphics {
|
|||
virtual ~StateTicket()
|
||||
{
|
||||
m_renderer->PopState();
|
||||
m_renderer->SetViewport(m_storedVP);
|
||||
m_renderer->SetTransform(m_storedMV);
|
||||
m_renderer->SetProjection(m_storedProj);
|
||||
}
|
||||
|
@ -174,6 +173,7 @@ namespace Graphics {
|
|||
Renderer *m_renderer;
|
||||
matrix4x4f m_storedProj;
|
||||
matrix4x4f m_storedMV;
|
||||
Viewport m_storedVP;
|
||||
};
|
||||
|
||||
// Temporarily save the current transform matrix to do non-destructive drawing.
|
||||
|
|
|
@ -43,9 +43,9 @@ namespace Graphics {
|
|||
virtual bool ClearDepthBuffer() override final { return true; }
|
||||
virtual bool SetClearColor(const Color &c) override final { return true; }
|
||||
|
||||
virtual bool SetViewport(int x, int y, int width, int height) override final { return true; }
|
||||
virtual bool SetViewport(Viewport v) override final { return true; }
|
||||
virtual Viewport GetViewport() const override final { return {}; }
|
||||
|
||||
virtual bool SetTransform(const matrix4x4d &m) override final { return true; }
|
||||
virtual bool SetTransform(const matrix4x4f &m) override final { return true; }
|
||||
virtual matrix4x4f GetTransform() const override final { return matrix4x4f::Identity(); }
|
||||
virtual bool SetPerspectiveProjection(float fov, float aspect, float near_, float far_) override final { return true; }
|
||||
|
@ -79,8 +79,6 @@ namespace Graphics {
|
|||
|
||||
virtual bool ReloadShaders() override final { return true; }
|
||||
|
||||
virtual void GetCurrentViewport(Sint32 *vp) const override final {}
|
||||
|
||||
protected:
|
||||
virtual void PushState() override final {}
|
||||
virtual void PopState() override final {}
|
||||
|
|
|
@ -198,8 +198,6 @@ namespace Graphics {
|
|||
|
||||
TextureBuilder::Init();
|
||||
|
||||
m_viewportStack.push(Viewport());
|
||||
|
||||
const bool useDXTnTextures = vs.useTextureCompression;
|
||||
m_useCompressedTextures = useDXTnTextures;
|
||||
|
||||
|
@ -223,7 +221,7 @@ namespace Graphics {
|
|||
glHint(GL_FRAGMENT_SHADER_DERIVATIVE_HINT, GL_NICEST);
|
||||
|
||||
SetClearColor(Color4f(0.f, 0.f, 0.f, 0.f));
|
||||
SetViewport(0, 0, m_width, m_height);
|
||||
SetViewport(Viewport(0, 0, m_width, m_height));
|
||||
|
||||
if (vs.enableDebugMessages)
|
||||
GLDebug::Enable();
|
||||
|
@ -573,22 +571,16 @@ namespace Graphics {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool RendererOGL::SetViewport(int x, int y, int width, int height)
|
||||
bool RendererOGL::SetViewport(Viewport v)
|
||||
{
|
||||
assert(!m_viewportStack.empty());
|
||||
Viewport ¤tViewport = m_viewportStack.top();
|
||||
currentViewport.x = x;
|
||||
currentViewport.y = y;
|
||||
currentViewport.w = width;
|
||||
currentViewport.h = height;
|
||||
glViewport(x, y, width, height);
|
||||
m_viewport = v;
|
||||
glViewport(v.x, v.y, v.w, v.h);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool RendererOGL::SetTransform(const matrix4x4d &m)
|
||||
Viewport RendererOGL::GetViewport() const
|
||||
{
|
||||
PROFILE_SCOPED()
|
||||
return SetTransform(matrix4x4f(m));
|
||||
return m_viewport;
|
||||
}
|
||||
|
||||
bool RendererOGL::SetTransform(const matrix4x4f &m)
|
||||
|
@ -694,7 +686,6 @@ namespace Graphics {
|
|||
|
||||
void RendererOGL::SetMaterialShaderTransforms(Material *m)
|
||||
{
|
||||
//m->SetCommonUniforms(m_modelViewStack.top(), m_projectionStack.top());
|
||||
m->SetCommonUniforms(m_modelViewMat, m_projectionMat);
|
||||
CheckRenderErrors(__FUNCTION__, __LINE__);
|
||||
}
|
||||
|
@ -1165,15 +1156,12 @@ namespace Graphics {
|
|||
// only restoring the things that have changed
|
||||
void RendererOGL::PushState()
|
||||
{
|
||||
m_viewportStack.push(m_viewportStack.top());
|
||||
// empty since viewport handling is now external, evaluate if renderer will need to save any custom state
|
||||
}
|
||||
|
||||
void RendererOGL::PopState()
|
||||
{
|
||||
m_viewportStack.pop();
|
||||
assert(!m_viewportStack.empty());
|
||||
const Viewport &cvp = m_viewportStack.top();
|
||||
SetViewport(cvp.x, cvp.y, cvp.w, cvp.h);
|
||||
// empty since viewport handling is now external, evaluate if renderer will need to save any custom state
|
||||
}
|
||||
|
||||
bool RendererOGL::Screendump(ScreendumpState &sd)
|
||||
|
|
|
@ -75,9 +75,9 @@ namespace Graphics {
|
|||
virtual bool ClearDepthBuffer() override final;
|
||||
virtual bool SetClearColor(const Color &c) override final;
|
||||
|
||||
virtual bool SetViewport(int x, int y, int width, int height) override final;
|
||||
virtual bool SetViewport(Viewport v) override final;
|
||||
virtual Viewport GetViewport() const override final;
|
||||
|
||||
virtual bool SetTransform(const matrix4x4d &m) override final;
|
||||
virtual bool SetTransform(const matrix4x4f &m) override final;
|
||||
virtual matrix4x4f GetTransform() const override final;
|
||||
|
||||
|
@ -112,15 +112,6 @@ namespace Graphics {
|
|||
|
||||
virtual bool ReloadShaders() override final;
|
||||
|
||||
virtual void GetCurrentViewport(Sint32 *vp) const override final
|
||||
{
|
||||
const Viewport &cur = m_viewportStack.top();
|
||||
vp[0] = cur.x;
|
||||
vp[1] = cur.y;
|
||||
vp[2] = cur.w;
|
||||
vp[3] = cur.h;
|
||||
}
|
||||
|
||||
virtual bool Screendump(ScreendumpState &sd) override final;
|
||||
virtual bool FrameGrab(ScreendumpState &sd) override final;
|
||||
|
||||
|
@ -162,16 +153,7 @@ namespace Graphics {
|
|||
|
||||
matrix4x4f m_modelViewMat;
|
||||
matrix4x4f m_projectionMat;
|
||||
|
||||
struct Viewport {
|
||||
Viewport() :
|
||||
x(0),
|
||||
y(0),
|
||||
w(0),
|
||||
h(0) {}
|
||||
Sint32 x, y, w, h;
|
||||
};
|
||||
std::stack<Viewport> m_viewportStack;
|
||||
Viewport m_viewport;
|
||||
|
||||
private:
|
||||
static bool initted;
|
||||
|
|
|
@ -22,7 +22,7 @@ namespace Gui {
|
|||
Gui::Widget *Screen::focusedWidget;
|
||||
matrix4x4f Screen::modelMatrix;
|
||||
matrix4x4f Screen::projMatrix;
|
||||
Sint32 Screen::viewport[4];
|
||||
Graphics::Viewport Screen::viewport;
|
||||
|
||||
FontCache Screen::s_fontCache;
|
||||
std::stack<RefCountedPtr<Text::TextureFont>> Screen::s_fontStack;
|
||||
|
@ -124,8 +124,8 @@ namespace Gui {
|
|||
(vclip[2] / w) * 0.5 + 0.5
|
||||
};
|
||||
|
||||
out.x = v[0] * viewport[2] + viewport[0];
|
||||
out.y = v[1] * viewport[3] + viewport[1];
|
||||
out.x = v[0] * viewport.w + viewport.x;
|
||||
out.y = v[1] * viewport.h + viewport.y;
|
||||
out.z = v[2];
|
||||
|
||||
// map to pixels
|
||||
|
@ -143,7 +143,7 @@ namespace Gui {
|
|||
modelMatrix = r->GetTransform();
|
||||
projMatrix = r->GetProjection();
|
||||
|
||||
r->GetCurrentViewport(&viewport[0]);
|
||||
viewport = r->GetViewport();
|
||||
r->SetOrthographicProjection(0, width, height, 0, -1, 1);
|
||||
r->SetTransform(matrix4x4f::Identity());
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "FontCache.h"
|
||||
#include "Gui.h"
|
||||
#include "graphics/Graphics.h"
|
||||
#include "graphics/RenderState.h"
|
||||
#include "text/TextureFont.h"
|
||||
#include <list>
|
||||
|
@ -87,7 +88,7 @@ namespace Gui {
|
|||
static void OnDeleteFocusedWidget();
|
||||
static matrix4x4f modelMatrix;
|
||||
static matrix4x4f projMatrix;
|
||||
static Sint32 viewport[4];
|
||||
static Graphics::Viewport viewport;
|
||||
|
||||
static FontCache s_fontCache;
|
||||
static std::stack<RefCountedPtr<Text::TextureFont>> s_fontStack;
|
||||
|
|
|
@ -67,7 +67,7 @@ void ModelSpinner::Render()
|
|||
r->SetPerspectiveProjection(fov, m_size.x / m_size.y, 1.f, 10000.f);
|
||||
r->SetTransform(matrix4x4f::Identity());
|
||||
const auto &desc = m_renderTarget.get()->GetDesc();
|
||||
r->SetViewport(0, 0, desc.width, desc.height);
|
||||
r->SetViewport({ 0, 0, desc.width, desc.height });
|
||||
|
||||
r->SetLights(1, &m_light);
|
||||
|
||||
|
|
|
@ -163,7 +163,7 @@ namespace UI {
|
|||
|
||||
// Ticket for the viewport mostly
|
||||
Graphics::Renderer::StateTicket ticket(r);
|
||||
r->SetViewport(0, 0, m_width, m_height);
|
||||
r->SetViewport({ 0, 0, m_width, m_height });
|
||||
|
||||
// reset renderer for each layer
|
||||
for (std::vector<Layer *>::iterator i = m_layers.begin(); i != m_layers.end(); ++i) {
|
||||
|
|
Loading…
Reference in New Issue