diff options
author | Treeki <treeki@gmail.com> | 2011-02-18 03:28:31 +0100 |
---|---|---|
committer | Treeki <treeki@gmail.com> | 2011-02-18 03:28:31 +0100 |
commit | b0760b28807b31cc1403584265c07feb87ac4887 (patch) | |
tree | dc97346a0c0d0cdcdc066d77df3905a614a858e8 /TestApp | |
parent | 7d7491feb41bc9724bf63bef545b996226406889 (diff) | |
download | nw4rtools-b0760b28807b31cc1403584265c07feb87ac4887.tar.gz nw4rtools-b0760b28807b31cc1403584265c07feb87ac4887.zip |
some collada work, and an unfinished OGL renderer using OpenTK. huge commit
Diffstat (limited to 'TestApp')
-rw-r--r-- | TestApp/Main.cs | 16 | ||||
-rw-r--r-- | TestApp/RenderWindow.cs | 57 | ||||
-rw-r--r-- | TestApp/TestApp.csproj | 5 | ||||
-rw-r--r-- | TestApp/TestApp.pidb | bin | 2991 -> 3039 bytes | |||
-rwxr-xr-x | TestApp/bin/Debug/NW4RTools.dll | bin | 166400 -> 173568 bytes | |||
-rw-r--r-- | TestApp/bin/Debug/NW4RTools.dll.mdb | bin | 90788 -> 93825 bytes | |||
-rw-r--r-- | TestApp/bin/Debug/OpenTK.dll | bin | 0 -> 2719744 bytes | |||
-rw-r--r-- | TestApp/bin/Debug/OpenTK.dll.config | 12 | ||||
-rwxr-xr-x | TestApp/bin/Debug/TestApp.exe | bin | 4608 -> 5632 bytes | |||
-rw-r--r-- | TestApp/bin/Debug/TestApp.exe.mdb | bin | 548 -> 992 bytes |
10 files changed, 88 insertions, 2 deletions
diff --git a/TestApp/Main.cs b/TestApp/Main.cs index 3eb49a4..447f556 100644 --- a/TestApp/Main.cs +++ b/TestApp/Main.cs @@ -2,6 +2,9 @@ using System; using System.IO; using System.Collections.Generic; using NW4RTools; +using OpenTK; +using OpenTK.Graphics; +using OpenTK.Graphics.OpenGL; namespace TestApp { class MainClass { @@ -10,13 +13,22 @@ namespace TestApp { string mdlName = "CS_W1"; //string mdlName = "bgB_4502"; + //string mdlName = "cobKoopaCastle"; string whatever = (mdlName == "CS_W2" || mdlName == "CS_W3" || mdlName == "CS_W6") ? "a" : ""; byte[] file = File.ReadAllBytes(mdlPath + mdlName + ".brres"); ResFile rf = BrresReader.LoadFile(file); - var texs = rf.GetGroup<Texture>("Textures(NW4R)"); + using (var gw = new RenderWindow()) { + gw.Title = mdlName; + gw.SetModel(rf, mdlName); + gw.Run(1, 1); + } + + + + /*var texs = rf.GetGroup<Texture>("Textures(NW4R)"); // wtf C#?! foreach (var kv in (IEnumerable<KeyValuePair<string,Texture>>)texs) { kv.Value.BaseImage.Save(mdlPath + "images/" + kv.Key + ".png"); @@ -27,7 +39,7 @@ namespace TestApp { //var sw = new StreamWriter(objFile); //ObjWriter.WriteModel(sw, rf, mdlName); ColladaWriter.WriteModel(objFile, rf, mdlName + whatever); - objFile.Close(); + objFile.Close();*/ } } } diff --git a/TestApp/RenderWindow.cs b/TestApp/RenderWindow.cs new file mode 100644 index 0000000..2dfe1ec --- /dev/null +++ b/TestApp/RenderWindow.cs @@ -0,0 +1,57 @@ +using System; +using NW4RTools; +using OpenTK; +using OpenTK.Graphics; +using OpenTK.Graphics.OpenGL; +using OpenTK.Input; + +namespace TestApp { + public class RenderWindow : GameWindow { + public RenderWindow() : base(800, 600, GraphicsMode.Default, "Test Model") { + + } + + private NW4RTools.Models.OpenGL.GLModel m_glModel; + + public void SetModel(ResFile rf, string modelName) { + m_glModel = new NW4RTools.Models.OpenGL.GLModel(rf, modelName); + } + + + protected override void OnLoad(EventArgs e) { + base.OnLoad(e); + + GL.ClearColor(0.1f, 0.2f, 0.5f, 0.0f); + GL.Enable(EnableCap.DepthTest); + + m_glModel.Prepare(Context); + } + + protected override void OnResize(EventArgs e) { + base.OnResize(e); + + GL.Viewport(ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, ClientRectangle.Height); + + Matrix4 projection = Matrix4.CreatePerspectiveFieldOfView((float)Math.PI / 4, Width / (float)Height, 1.0f, 2000.0f); + GL.MatrixMode(MatrixMode.Projection); + GL.LoadMatrix(ref projection); + } + + protected override void OnUpdateFrame(FrameEventArgs e) { + base.OnUpdateFrame(e); + + GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); + + Matrix4 modelview = Matrix4.LookAt(new Vector3(0, 1200, 500), Vector3.UnitZ, Vector3.UnitY); + GL.MatrixMode(MatrixMode.Modelview); + GL.LoadMatrix(ref modelview); + + m_glModel.Render(Context); + + SwapBuffers(); + } + + + } +} + diff --git a/TestApp/TestApp.csproj b/TestApp/TestApp.csproj index 5c96e3b..e979782 100644 --- a/TestApp/TestApp.csproj +++ b/TestApp/TestApp.csproj @@ -31,10 +31,15 @@ </PropertyGroup> <ItemGroup> <Reference Include="System" /> + <Reference Include="OpenTK, Version=1.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\CSharp\opentk\Binaries\OpenTK\Release\OpenTK.dll</HintPath> + </Reference> </ItemGroup> <ItemGroup> <Compile Include="Main.cs" /> <Compile Include="AssemblyInfo.cs" /> + <Compile Include="RenderWindow.cs" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <ItemGroup> diff --git a/TestApp/TestApp.pidb b/TestApp/TestApp.pidb Binary files differindex bf2fb29..4b3557d 100644 --- a/TestApp/TestApp.pidb +++ b/TestApp/TestApp.pidb diff --git a/TestApp/bin/Debug/NW4RTools.dll b/TestApp/bin/Debug/NW4RTools.dll Binary files differindex 91a4b75..dbcb459 100755 --- a/TestApp/bin/Debug/NW4RTools.dll +++ b/TestApp/bin/Debug/NW4RTools.dll diff --git a/TestApp/bin/Debug/NW4RTools.dll.mdb b/TestApp/bin/Debug/NW4RTools.dll.mdb Binary files differindex 127ef0f..b67ce24 100644 --- a/TestApp/bin/Debug/NW4RTools.dll.mdb +++ b/TestApp/bin/Debug/NW4RTools.dll.mdb diff --git a/TestApp/bin/Debug/OpenTK.dll b/TestApp/bin/Debug/OpenTK.dll Binary files differnew file mode 100644 index 0000000..afff0dd --- /dev/null +++ b/TestApp/bin/Debug/OpenTK.dll diff --git a/TestApp/bin/Debug/OpenTK.dll.config b/TestApp/bin/Debug/OpenTK.dll.config new file mode 100644 index 0000000..99aef86 --- /dev/null +++ b/TestApp/bin/Debug/OpenTK.dll.config @@ -0,0 +1,12 @@ +<configuration>
+ <dllmap os="linux" dll="opengl32.dll" target="libGL.so.1"/>
+ <dllmap os="linux" dll="glu32.dll" target="libGLU.so.1"/>
+ <dllmap os="linux" dll="openal32.dll" target="libopenal.so.1"/>
+ <dllmap os="linux" dll="alut.dll" target="libalut.so.0"/>
+ <dllmap os="linux" dll="opencl.dll" target="libOpenCL.so"/>
+ <dllmap os="osx" dll="openal32.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
+ <dllmap os="osx" dll="alut.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
+ <dllmap os="osx" dll="libGLES.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" /> + <dllmap os="osx" dll="libGLESv2.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" /> + <dllmap os="osx" dll="opencl.dll" target="/System/Library/Frameworks/OpenCL.framework/OpenCL"/>
+</configuration>
diff --git a/TestApp/bin/Debug/TestApp.exe b/TestApp/bin/Debug/TestApp.exe Binary files differindex 1bce1bb..bafaf4c 100755 --- a/TestApp/bin/Debug/TestApp.exe +++ b/TestApp/bin/Debug/TestApp.exe diff --git a/TestApp/bin/Debug/TestApp.exe.mdb b/TestApp/bin/Debug/TestApp.exe.mdb Binary files differindex 00eab08..3f3b216 100644 --- a/TestApp/bin/Debug/TestApp.exe.mdb +++ b/TestApp/bin/Debug/TestApp.exe.mdb |