MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / onRender

Method onRender

Engine/source/gui/controls/guiMaterialCtrl.cpp:105–172  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

103}
104
105void GuiMaterialCtrl::onRender( Point2I offset, const RectI &updateRect )
106{
107 Parent::onRender( offset, updateRect );
108
109 if ( !mMaterialInst )
110 return;
111
112 // Draw a quad with the material assigned
113 GFXVertexBufferHandle<GFXVertexPCT> verts( GFX, 4, GFXBufferTypeVolatile );
114 verts.lock();
115
116 F32 screenLeft = updateRect.point.x;
117 F32 screenRight = (updateRect.point.x + updateRect.extent.x);
118 F32 screenTop = updateRect.point.y;
119 F32 screenBottom = (updateRect.point.y + updateRect.extent.y);
120
121 const F32 fillConv = GFX->getFillConventionOffset();
122 verts[0].point.set( screenLeft - fillConv, screenTop - fillConv, 0.f );
123 verts[1].point.set( screenRight - fillConv, screenTop - fillConv, 0.f );
124 verts[2].point.set( screenLeft - fillConv, screenBottom - fillConv, 0.f );
125 verts[3].point.set( screenRight - fillConv, screenBottom - fillConv, 0.f );
126
127 verts[0].color = verts[1].color = verts[2].color = verts[3].color = ColorI( 255, 255, 255, 255 );
128
129 verts[0].texCoord.set( 0.0f, 0.0f );
130 verts[1].texCoord.set( 1.0f, 0.0f );
131 verts[2].texCoord.set( 0.0f, 1.0f );
132 verts[3].texCoord.set( 1.0f, 1.0f );
133
134 verts.unlock();
135
136 GFX->setVertexBuffer( verts );
137
138 MatrixSet matSet;
139 matSet.setWorld(GFX->getWorldMatrix());
140 matSet.setView(GFX->getViewMatrix());
141 matSet.setProjection(GFX->getProjectionMatrix());
142
143 MatrixF cameraMatrix( true );
144 F32 left, right, top, bottom, nearPlane, farPlane;
145 bool isOrtho;
146 GFX->getFrustum( &left, &right, &bottom, &top, &nearPlane, &farPlane, &isOrtho );
147 Frustum frust( isOrtho, left, right, top, bottom, nearPlane, farPlane, cameraMatrix );
148
149 SceneRenderState state
150 (
151 gClientSceneGraph,
152 SPT_Diffuse,
153 SceneCameraState( GFX->getViewport(), frust, GFX->getWorldMatrix(), GFX->getProjectionMatrix() ),
154 gClientSceneGraph->getDefaultRenderPass(),
155 false
156 );
157
158 SceneData sgData;
159 sgData.init( &state );
160 sgData.wireframe = false; // Don't wireframe this.
161
162 while( mMaterialInst->setupPass( &state, sgData ) )

Callers

nothing calls this directly

Calls 15

setVertexBufferMethod · 0.80
getProjectionMatrixMethod · 0.80
getFrustumMethod · 0.80
getDefaultRenderPassMethod · 0.80
ColorIClass · 0.50
SceneCameraStateClass · 0.50
lockMethod · 0.45
setMethod · 0.45
unlockMethod · 0.45
getWorldMatrixMethod · 0.45
initMethod · 0.45

Tested by

no test coverage detected