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

Method onRender

Engine/source/gui/controls/guiMaterialCtrl.cpp:101–168  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 15

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

Tested by

no test coverage detected