Page MenuHome

bge_mousefocus.patch

Authored By
kanttori (kanttori)
Nov 13 2013, 3:24 PM
Size
3 KB
Subscribers
None

bge_mousefocus.patch

Index: source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
===================================================================
--- source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp (revision 40950)
+++ source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp (working copy)
@@ -360,7 +360,14 @@
ketsjiengine->SetCameraOverrideUseOrtho((rv3d->persp == RV3D_ORTHO));
ketsjiengine->SetCameraOverrideProjectionMatrix(MT_CmMatrix4x4(rv3d->winmat));
ketsjiengine->SetCameraOverrideViewMatrix(MT_CmMatrix4x4(rv3d->viewmat));
- ketsjiengine->SetCameraOverrideClipping(v3d->near, v3d->far);
+ if(rv3d->persp == RV3D_ORTHO)
+ {
+ ketsjiengine->SetCameraOverrideClipping(-v3d->far, v3d->far);
+ }
+ else
+ {
+ ketsjiengine->SetCameraOverrideClipping(v3d->near, v3d->far);
+ }
ketsjiengine->SetCameraOverrideLens(v3d->lens);
}
Index: source/gameengine/Ketsji/KX_KetsjiEngine.cpp
===================================================================
--- source/gameengine/Ketsji/KX_KetsjiEngine.cpp (revision 40950)
+++ source/gameengine/Ketsji/KX_KetsjiEngine.cpp (working copy)
@@ -1400,8 +1400,14 @@
KX_Camera* activecam = NULL;
RAS_CameraData camdata = RAS_CameraData();
- if (override_camera) camdata.m_lens = m_overrideCamLens;
-
+ if (override_camera)
+ {
+ camdata.m_lens = m_overrideCamLens;
+ camdata.m_clipstart = m_overrideCamNear;
+ camdata.m_clipend = m_overrideCamFar;
+
+ camdata.m_perspective= !m_overrideCamUseOrtho;
+ }
activecam = new KX_Camera(scene,KX_Scene::m_callbacks,camdata);
activecam->SetName("__default__cam__");
Index: source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
===================================================================
--- source/gameengine/Ketsji/KX_MouseFocusSensor.cpp (revision 40950)
+++ source/gameengine/Ketsji/KX_MouseFocusSensor.cpp (working copy)
@@ -241,28 +241,23 @@
/* build the from and to point in normalized device coordinates
* Looks like normailized device coordinates are [-1,1] in x [-1,1] in y
- * [0,-1] in z
+ * [-1,1] in z
*
* The actual z coordinates used don't have to be exact just infront and
* behind of the near and far clip planes.
*/
frompoint.setValue( (2 * (m_x-x_lb) / width) - 1.0,
1.0 - (2 * (m_y_inv - y_lb) / height),
- /*cam->GetCameraData()->m_perspective ? 0.0:cdata->m_clipstart,*/ /* real clipstart is scaled in ortho for some reason, zero is ok */
- 0.0, /* nearclip, see above comments */
+ -1.0,
1.0 );
topoint.setValue( (2 * (m_x-x_lb) / width) - 1.0,
1.0 - (2 * (m_y_inv-y_lb) / height),
- cam->GetCameraData()->m_perspective ? 1.0:cam->GetCameraData()->m_clipend, /* farclip, see above comments */
+ 1.0,
1.0 );
-
- /* camera to world */
- MT_Transform wcs_camcs_tranform = cam->GetWorldToCamera();
- MT_Transform cams_wcs_transform;
- cams_wcs_transform.invert(wcs_camcs_tranform);
- MT_Matrix4x4 camcs_wcs_matrix = MT_Matrix4x4(cams_wcs_transform);
+ /* camera to world */
+ MT_Matrix4x4 camcs_wcs_matrix = MT_Matrix4x4(cam->GetCameraToWorld());
/* badly defined, the first time round.... I wonder why... I might
* want to guard against floating point errors here.*/
Index: source/gameengine/Rasterizer/RAS_FramingManager.cpp
===================================================================
--- source/gameengine/Rasterizer/RAS_FramingManager.cpp (revision 40950)
+++ source/gameengine/Rasterizer/RAS_FramingManager.cpp (working copy)
@@ -99,7 +99,7 @@
frustum.x1 = -frustum.x2;
frustum.y2 = sizeY;
frustum.y1 = -frustum.y2;
- frustum.camnear = -camfar;
+ frustum.camnear = camnear;
frustum.camfar = camfar;
}

File Metadata

Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
e9/82/e6a0a6deb7cc6423ed1232ab4fbe

Event Timeline