MCPcopy Create free account
hub / github.com/defold/defold / CompCameraOnMessage

Function CompCameraOnMessage

engine/gamesys/src/gamesys/components/comp_camera.cpp:272–307  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

270 }
271
272 dmGameObject::UpdateResult CompCameraOnMessage(const dmGameObject::ComponentOnMessageParams& params)
273 {
274 CameraComponent* camera = (CameraComponent*)*params.m_UserData;
275
276 if ((dmDDF::Descriptor*)params.m_Message->m_Descriptor == dmGamesysDDF::SetCamera::m_DDFDescriptor)
277 {
278 dmRender::RenderContext* render_context = (dmRender::RenderContext*)params.m_Context;
279 dmRender::RenderCameraData camera_data = {};
280 dmRender::GetRenderCameraData(render_context, camera->m_RenderCamera, &camera_data);
281
282 dmGamesysDDF::SetCamera* ddf = (dmGamesysDDF::SetCamera*)params.m_Message->m_Data;
283 camera_data.m_AspectRatio = ddf->m_AspectRatio;
284 camera_data.m_Fov = ddf->m_Fov;
285 camera_data.m_NearZ = ddf->m_NearZ;
286 camera_data.m_FarZ = ddf->m_FarZ;
287 camera_data.m_OrthographicProjection = ddf->m_OrthographicProjection;
288 camera_data.m_OrthographicZoom = ddf->m_OrthographicZoom;
289 camera_data.m_OrthographicMode = (uint8_t) ddf->m_OrthographicMode;
290
291 dmRender::SetRenderCameraData(render_context, camera->m_RenderCamera, &camera_data);
292 }
293 else if (params.m_Message->m_Id == dmGameObjectDDF::Enable::m_DDFDescriptor->m_NameHash ||
294 (dmDDF::Descriptor*)params.m_Message->m_Descriptor == dmGamesysDDF::AcquireCameraFocus::m_DDFDescriptor)
295 {
296 CameraStackPush(camera->m_World, camera);
297 dmRender::SetRenderCameraEnabled((dmRender::RenderContext*)params.m_Context, camera->m_RenderCamera, true);
298 }
299 else if (params.m_Message->m_Id == dmGameObjectDDF::Disable::m_DDFDescriptor->m_NameHash ||
300 (dmDDF::Descriptor*)params.m_Message->m_Descriptor == dmGamesysDDF::ReleaseCameraFocus::m_DDFDescriptor)
301 {
302 CameraStackRemove(camera->m_World, camera);
303 dmRender::SetRenderCameraEnabled((dmRender::RenderContext*)params.m_Context, camera->m_RenderCamera, false);
304 }
305
306 return dmGameObject::UPDATE_RESULT_OK;
307 }
308
309 void CompCameraOnReload(const dmGameObject::ComponentOnReloadParams& params)
310 {

Callers

nothing calls this directly

Calls 5

GetRenderCameraDataFunction · 0.85
SetRenderCameraDataFunction · 0.85
CameraStackPushFunction · 0.85
SetRenderCameraEnabledFunction · 0.85
CameraStackRemoveFunction · 0.85

Tested by

no test coverage detected