Browse Source

Exposed texture formats to script.
Fixed directional lights in light pre-pass mode when using the same camera for multiple views with different aspect ratios.

Lasse Öörni 14 years ago
parent
commit
c334b471e0

+ 10 - 3
Docs/ScriptAPI.dox

@@ -24,11 +24,15 @@
 - float Random(float)
 - float Random(float)
 - int RandomInt()
 - int RandomInt()
 - int RandomInt(int)
 - int RandomInt(int)
+- void SetRandomSeed(uint)
+- uint GetRandomSeed()
 - String ToStringHex(int)
 - String ToStringHex(int)
 - void ErrorDialog(const String&, const String&)
 - void ErrorDialog(const String&, const String&)
 - void OpenConsoleWindow()
 - void OpenConsoleWindow()
 - String GetConsoleInput()
 - String GetConsoleInput()
 - String[]@ GetArguments()
 - String[]@ GetArguments()
+- uint GetNumPhysicalCPUs()
+- uint GetNumLogicalCPUs()
 - void SendEvent(const String&, VariantMap&)
 - void SendEvent(const String&, VariantMap&)
 - void SendEvent(Object@, const String&, VariantMap&)
 - void SendEvent(Object@, const String&, VariantMap&)
 - void SubscribeToEvent(const String&, const String&)
 - void SubscribeToEvent(const String&, const String&)
@@ -53,14 +57,17 @@
 - String GetParentPath(const String&)
 - String GetParentPath(const String&)
 - String GetInternalPath(const String&)
 - String GetInternalPath(const String&)
 - String[]@ GetAvailableComponents()
 - String[]@ GetAvailableComponents()
+- uint GetAlphaFormat()
+- uint GetLuminanceFormat()
+- uint GetLuminanceAlphaFormat()
+- uint GetRGBFormat()
+- uint GetRGBAFormat()
+- uint GetDepthStencilFormat()
 - void DelayedExecute(float, const String&, const Variant[]@)
 - void DelayedExecute(float, const String&, const Variant[]@)
 - void DelayedExecute(float, const String&)
 - void DelayedExecute(float, const String&)
 - void ClearDelayedExecute()
 - void ClearDelayedExecute()
 - void Remove()
 - void Remove()
 \section ScriptAPI_GlobalProperties Global properties
 \section ScriptAPI_GlobalProperties Global properties
-- uint randomSeed
-- uint numPhysicalCPUs
-- uint numLogicalCPUs
 - Time@ time
 - Time@ time
 - Log@ log
 - Log@ log
 - FileSystem@ fileSystem
 - FileSystem@ fileSystem

+ 2 - 2
Engine/Engine/CoreAPI.cpp

@@ -565,8 +565,8 @@ static void RegisterProcessUtils(asIScriptEngine* engine)
     engine->RegisterGlobalFunction("void OpenConsoleWindow()", asFUNCTION(OpenConsoleWindow), asCALL_CDECL);
     engine->RegisterGlobalFunction("void OpenConsoleWindow()", asFUNCTION(OpenConsoleWindow), asCALL_CDECL);
     engine->RegisterGlobalFunction("String GetConsoleInput()", asFUNCTION(GetConsoleInput), asCALL_CDECL);
     engine->RegisterGlobalFunction("String GetConsoleInput()", asFUNCTION(GetConsoleInput), asCALL_CDECL);
     engine->RegisterGlobalFunction("Array<String>@ GetArguments()", asFUNCTION(GetArgumentsToArray), asCALL_CDECL);
     engine->RegisterGlobalFunction("Array<String>@ GetArguments()", asFUNCTION(GetArgumentsToArray), asCALL_CDECL);
-    engine->RegisterGlobalFunction("uint get_numPhysicalCPUs()", asFUNCTION(GetNumPhysicalCPUs), asCALL_CDECL);
-    engine->RegisterGlobalFunction("uint get_numLogicalCPUs()", asFUNCTION(GetNumLogicalCPUs), asCALL_CDECL);
+    engine->RegisterGlobalFunction("uint GetNumPhysicalCPUs()", asFUNCTION(GetNumPhysicalCPUs), asCALL_CDECL);
+    engine->RegisterGlobalFunction("uint GetNumLogicalCPUs()", asFUNCTION(GetNumLogicalCPUs), asCALL_CDECL);
 }
 }
 
 
 static void ConstructAttributeInfo(AttributeInfo* ptr)
 static void ConstructAttributeInfo(AttributeInfo* ptr)

+ 7 - 0
Engine/Engine/GraphicsAPI.cpp

@@ -251,6 +251,13 @@ static void RegisterTextures(asIScriptEngine* engine)
     engine->RegisterObjectMethod("TextureCube", "void SetSize(int, uint, TextureUsage usage = TEXTURE_STATIC)", asMETHOD(TextureCube, SetSize), asCALL_THISCALL);
     engine->RegisterObjectMethod("TextureCube", "void SetSize(int, uint, TextureUsage usage = TEXTURE_STATIC)", asMETHOD(TextureCube, SetSize), asCALL_THISCALL);
     engine->RegisterObjectMethod("TextureCube", "bool Load(CubeMapFace, Image@+, bool useAlpha = false)", asFUNCTION(TextureCubeLoad), asCALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod("TextureCube", "bool Load(CubeMapFace, Image@+, bool useAlpha = false)", asFUNCTION(TextureCubeLoad), asCALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod("TextureCube", "RenderSurface@+ get_renderSurface(CubeMapFace) const", asMETHOD(TextureCube, GetRenderSurface), asCALL_THISCALL);
     engine->RegisterObjectMethod("TextureCube", "RenderSurface@+ get_renderSurface(CubeMapFace) const", asMETHOD(TextureCube, GetRenderSurface), asCALL_THISCALL);
+    
+    engine->RegisterGlobalFunction("uint GetAlphaFormat()", asFUNCTION(Graphics::GetAlphaFormat), asCALL_CDECL);
+    engine->RegisterGlobalFunction("uint GetLuminanceFormat()", asFUNCTION(Graphics::GetLuminanceFormat), asCALL_CDECL);
+    engine->RegisterGlobalFunction("uint GetLuminanceAlphaFormat()", asFUNCTION(Graphics::GetLuminanceAlphaFormat), asCALL_CDECL);
+    engine->RegisterGlobalFunction("uint GetRGBFormat()", asFUNCTION(Graphics::GetRGBFormat), asCALL_CDECL);
+    engine->RegisterGlobalFunction("uint GetRGBAFormat()", asFUNCTION(Graphics::GetRGBAFormat), asCALL_CDECL);
+    engine->RegisterGlobalFunction("uint GetDepthStencilFormat()", asFUNCTION(Graphics::GetDepthStencilFormat), asCALL_CDECL);
 }
 }
 
 
 static Vector4 MaterialGetShaderParameter(const String& name, Material* ptr)
 static Vector4 MaterialGetShaderParameter(const String& name, Material* ptr)

+ 2 - 2
Engine/Engine/MathAPI.cpp

@@ -92,8 +92,8 @@ static void RegisterMathFunctions(asIScriptEngine* engine)
     engine->RegisterGlobalFunction("float Random(float)", asFUNCTIONPR(Random, (float), float), asCALL_CDECL);
     engine->RegisterGlobalFunction("float Random(float)", asFUNCTIONPR(Random, (float), float), asCALL_CDECL);
     engine->RegisterGlobalFunction("int RandomInt()", asFUNCTION(Rand), asCALL_CDECL);
     engine->RegisterGlobalFunction("int RandomInt()", asFUNCTION(Rand), asCALL_CDECL);
     engine->RegisterGlobalFunction("int RandomInt(int)", asFUNCTIONPR(Random, (int), int), asCALL_CDECL);
     engine->RegisterGlobalFunction("int RandomInt(int)", asFUNCTIONPR(Random, (int), int), asCALL_CDECL);
-    engine->RegisterGlobalFunction("void set_randomSeed(uint)", asFUNCTION(SetRandomSeed), asCALL_CDECL);
-    engine->RegisterGlobalFunction("uint get_randomSeed()", asFUNCTION(GetRandomSeed), asCALL_CDECL);
+    engine->RegisterGlobalFunction("void SetRandomSeed(uint)", asFUNCTION(SetRandomSeed), asCALL_CDECL);
+    engine->RegisterGlobalFunction("uint GetRandomSeed()", asFUNCTION(GetRandomSeed), asCALL_CDECL);
 }
 }
 
 
 static void ConstructIntRect(IntRect* ptr)
 static void ConstructIntRect(IntRect* ptr)

+ 1 - 1
Engine/Graphics/Direct3D9/D3D9Graphics.cpp

@@ -1896,7 +1896,7 @@ unsigned Graphics::GetLinearDepthFormat()
 
 
 unsigned Graphics::GetDepthStencilFormat()
 unsigned Graphics::GetDepthStencilFormat()
 {
 {
-    return MAKEFOURCC('I', 'N', 'T', 'Z');
+    return D3DFMT_D24S8;
 }
 }
 
 
 bool Graphics::OpenWindow(int width, int height)
 bool Graphics::OpenWindow(int width, int height)

+ 3 - 0
Engine/Graphics/View.cpp

@@ -2136,6 +2136,9 @@ void View::SetupLightVolumeBatch(Batch& batch)
     }
     }
     else
     else
     {
     {
+        // In case the same camera is used for multiple views with differing aspect ratios (not recommended)
+        // refresh the directional light's model transform before rendering
+        light->GetVolumeTransform(camera_);
         graphics_->SetCullMode(CULL_NONE);
         graphics_->SetCullMode(CULL_NONE);
         graphics_->SetDepthTest(CMP_ALWAYS);
         graphics_->SetDepthTest(CMP_ALWAYS);
     }
     }