MCPcopy Create free account
hub / github.com/carbonengine/trinity / Execute

Method Execute

trinity/RenderJob/TriStepRemoteUpdate.cpp:146–187  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

144}
145
146TriStepResult TriStepRemoteUpdate::Execute( Be::Time realTime, Be::Time simTime, Tr2RenderContext& renderContext )
147{
148 // Lock and read
149 if( m_sharedMemory != NULL )
150 {
151 if( WaitForSingleObject( m_needsHndl, 0 ) == WAIT_OBJECT_0 )
152 {
153 if( WaitForSingleObject( m_writingHndl, 0 ) == WAIT_OBJECT_0 )
154 {
155 ResetEvent( m_readingHndl );
156
157 // Read data
158 Matrix projMat;
159 Matrix viewMat;
160 Dx9Viewport viewport;
161 int offset = 0;
162
163 memcpy( (void*)&projMat, m_sharedMemory, 64 );
164 offset += 64;
165 memcpy( (void*)&viewMat, m_sharedMemory + offset, 64 );
166 offset += 64;
167 memcpy( (void*)&viewport, m_sharedMemory + offset, 24 );
168 m_projection->CustomProjection( projMat );
169 m_view->SetTransform( viewMat );
170 m_viewport->width = viewport.Width;
171 m_viewport->height = viewport.Height;
172
173 SetEvent( m_readingHndl );
174 ResetEvent( m_needsHndl );
175 }
176 }
177 }
178 else
179 {
180 if( !OpenSharedMemoryAndEvents() )
181 {
182 CCP_LOGERR( "There is no shared memory to read from" );
183 }
184 }
185
186 return RS_OK;
187}
188
189#endif

Callers

nothing calls this directly

Calls 2

CustomProjectionMethod · 0.80
SetTransformMethod · 0.45

Tested by

no test coverage detected