Quellcode durchsuchen

Fixed Camera's view override flags not exposed to script.

Lasse Öörni vor 14 Jahren
Ursprung
Commit
83dbac20fc

+ 5 - 0
Docs/ScriptAPI.dox

@@ -102,6 +102,10 @@
 - uint LAST_REPLICATED_ID
 - uint FIRST_LOCAL_ID
 - uint LAST_LOCAL_ID
+- uint VO_NONE
+- uint VO_LOW_MATERIAL_QUALITY
+- uint VO_DISABLE_SHADOWS
+- uint VO_DISABLE_OCCLUSION
 - uint DRAWABLE_GEOMETRY
 - uint DRAWABLE_LIGHT
 - uint DRAWABLE_ZONE
@@ -1263,6 +1267,7 @@ Properties:<br>
 - bool autoAspectRatio
 - Vector2& projectionOffset
 - uint viewMask
+- uint viewOverrideFlags
 - Frustum frustum (readonly)
 - Frustum viewSpaceFrustum (readonly)
 - float halfViewSize (readonly)

+ 7 - 0
Engine/Engine/GraphicsAPI.cpp

@@ -47,6 +47,11 @@ void FakeReleaseRef(void* ptr);
 
 static void RegisterCamera(asIScriptEngine* engine)
 {
+    engine->RegisterGlobalProperty("const uint VO_NONE", (void*)&VO_NONE);
+    engine->RegisterGlobalProperty("const uint VO_LOW_MATERIAL_QUALITY", (void*)&VO_LOW_MATERIAL_QUALITY);
+    engine->RegisterGlobalProperty("const uint VO_DISABLE_SHADOWS", (void*)&VO_DISABLE_SHADOWS);
+    engine->RegisterGlobalProperty("const uint VO_DISABLE_OCCLUSION", (void*)&VO_DISABLE_OCCLUSION);
+    
     RegisterComponent<Camera>(engine, "Camera");
     engine->RegisterObjectMethod("Camera", "void SetOrthoSize(const Vector2&in)", asMETHODPR(Camera, SetOrthoSize, (const Vector2&), void), asCALL_THISCALL);
     engine->RegisterObjectMethod("Camera", "Frustum GetSplitFrustum(float, float)", asMETHOD(Camera, GetSplitFrustum), asCALL_THISCALL);
@@ -75,6 +80,8 @@ static void RegisterCamera(asIScriptEngine* engine)
     engine->RegisterObjectMethod("Camera", "const Vector2& get_projectionOffset() const", asMETHOD(Camera, GetProjectionOffset), asCALL_THISCALL);
     engine->RegisterObjectMethod("Camera", "void set_viewMask(uint)", asMETHOD(Camera, SetViewMask), asCALL_THISCALL);
     engine->RegisterObjectMethod("Camera", "uint get_viewMask() const", asMETHOD(Camera, GetViewMask), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Camera", "void set_viewOverrideFlags(uint)", asMETHOD(Camera, SetViewOverrideFlags), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Camera", "uint get_viewOverrideFlags() const", asMETHOD(Camera, GetViewOverrideFlags), asCALL_THISCALL);
     engine->RegisterObjectMethod("Camera", "Frustum get_frustum()", asMETHOD(Camera, GetFrustum), asCALL_THISCALL);
     engine->RegisterObjectMethod("Camera", "Frustum get_viewSpaceFrustum() const", asMETHOD(Camera, GetViewSpaceFrustum), asCALL_THISCALL);
     engine->RegisterObjectMethod("Camera", "float get_halfViewSize() const", asMETHOD(Camera, GetHalfViewSize), asCALL_THISCALL);

+ 2 - 2
Engine/Graphics/Camera.cpp

@@ -47,7 +47,7 @@ Camera::Camera(Context* context) :
     orthographic_(false),
     autoAspectRatio_(true),
     viewMask_(DEFAULT_VIEWMASK),
-    viewOverrideFlags_(VOF_NONE),
+    viewOverrideFlags_(VO_NONE),
     projectionOffset_(Vector2::ZERO)
 {
 }
@@ -70,7 +70,7 @@ void Camera::RegisterObject(Context* context)
     ACCESSOR_ATTRIBUTE(Camera, VAR_FLOAT, "Zoom", GetZoom, SetZoom, float, 1.0f, AM_DEFAULT);
     ACCESSOR_ATTRIBUTE(Camera, VAR_FLOAT, "LOD Bias", GetLodBias, SetLodBias, float, 1.0f, AM_DEFAULT);
     ATTRIBUTE(Camera, VAR_INT, "View Mask", viewMask_, DEFAULT_VIEWMASK, AM_DEFAULT);
-    ATTRIBUTE(Camera, VAR_INT, "View Override Flags", viewOverrideFlags_, VOF_NONE, AM_DEFAULT);
+    ATTRIBUTE(Camera, VAR_INT, "View Override Flags", viewOverrideFlags_, VO_NONE, AM_DEFAULT);
     ATTRIBUTE(Camera, VAR_VECTOR2, "Projection Offset", projectionOffset_, Vector2::ZERO, AM_DEFAULT);
 }
 

+ 4 - 4
Engine/Graphics/Camera.h

@@ -28,10 +28,10 @@
 #include "Node.h"
 #include "Ray.h"
 
-static const unsigned VOF_NONE = 0x0;
-static const unsigned VOF_LOW_MATERIAL_QUALITY = 0x1;
-static const unsigned VOF_DISABLE_SHADOWS = 0x2;
-static const unsigned VOF_DISABLE_OCCLUSION = 0x4;
+static const unsigned VO_NONE = 0x0;
+static const unsigned VO_LOW_MATERIAL_QUALITY = 0x1;
+static const unsigned VO_DISABLE_SHADOWS = 0x2;
+static const unsigned VO_DISABLE_OCCLUSION = 0x4;
 
 /// %Camera component.
 class Camera : public Component

+ 3 - 3
Engine/Graphics/View.cpp

@@ -120,11 +120,11 @@ bool View::Define(RenderSurface* renderTarget, const Viewport& viewport)
     maxOccluderTriangles_ = renderer_->GetMaxOccluderTriangles();
     
     unsigned viewOverrideFlags = camera_->GetViewOverrideFlags();
-    if (viewOverrideFlags & VOF_LOW_MATERIAL_QUALITY)
+    if (viewOverrideFlags & VO_LOW_MATERIAL_QUALITY)
         materialQuality_ = QUALITY_LOW;
-    if (viewOverrideFlags & VOF_DISABLE_SHADOWS)
+    if (viewOverrideFlags & VO_DISABLE_SHADOWS)
         drawShadows_ = false;
-    if (viewOverrideFlags & VOF_DISABLE_OCCLUSION)
+    if (viewOverrideFlags & VO_DISABLE_OCCLUSION)
         maxOccluderTriangles_ = 0;
     
     return true;