OpenTKには次のコードがあります。
unsafe
{
Vector3* data = (Vector3*)Marshal.AllocHGlobal(
Marshal.SizeOf(typeof(Vector3)) * simpleVertices.Count);
Vector2* uv = (Vector2*)Marshal.AllocHGlobal(
Marshal.SizeOf(typeof(Vector2)) * simpleVertices.Count);
for(int i = 0; i < simpleVertices.Count; i++)
{
((Vector3*)data)[i] = simpleVertices[i];
Vector2 thisuv = uvData[i];
((Vector2*)uv)[i] = uvData[i];
}
GL.BindTexture(All.Texture2D, texture.GLTexture.OpenGLName);
GL.TexParameter(All.Texture2D, All.TextureWrapS, (int)TextureWrapMode.Repeat);
GL.TexParameter(All.Texture2D, All.TextureWrapT, (int)TextureWrapMode.Repeat);
byte []squareColors = new byte[simpleVertices.Count];
Random.NextBytes(squareColors);
GL.ColorPointer (vertices.Count, All.UnsignedByte, 0, squareColors);
GL.VertexPointer(3, All.Float, sizeof(Vector3), new IntPtr(data));
GL.DrawArrays(All.Triangles, 0, simpleVertices.Count);
Marshal.FreeHGlobal((IntPtr)data);
Marshal.FreeHGlobal((IntPtr)uv);
}
頂点とuvに与えられたデータが正しく(少なくともXNAレンダラーでは正常に機能する)、画面に白いポリゴンが正しく描画されていることがわかります。
上記のコードから、squareColoursにランダムなバイト数を入力しているので(squareColorsがランダムなバイトで埋められていることを確認しました)、さまざまな色が表示されるはずですが、そうではありません。頂点はすべて白で描かれています。
また、(GL.BindTextureを介して)テクスチャをバインドしようとしましたが、失敗しました。
これが機能しない理由はありますか?
編集:色を有効にするために追加したとき(この投稿の最初のコメントを参照)、アプリがクラッシュし、次の出力が表示されました:
スタックトレース:
at(ラッパー管理からネイティブ)OpenTK.Graphics.ES11.GL/Core.DrawArrays(OpenTK.Graphics.ES11.All、int、int)at OpenTK.Graphics.ES11.GL.DrawArrays(OpenTK.Graphics.ES11。 All、int、int)[0x00000] in /Users/plasma/Source/iphone/monotouch/OpenGLES/OpenTK/Graphics/ES11.iPhone/GL.cs:1326 at Jabber.J3D.Shape.Draw_IOS()[0x00171] in /Users/ahmedhakeem/Documents/Projects/JabberEngine2/MyCode/Engine/J3D/Shape_iOS.cs:136 at Jabber.J3D.Shape.Draw()[0x00000] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / MyCode / Engine /J3D/Shape.cs:255 at Jabber.J3D.PhysicShape.Draw()[0x00000] in /Users/ahmedhakeem/Documents/Projects/JabberEngine2/MyCode/Engine/J3D/PhysicShape.cs:46 at Jabber.Scene.GameScene Jabberの/Users/ahmedhakeem/Documents/Projects/JabberEngine2/MyCode/Engine/Scene/GameScene.cs:299に.Draw()[0x0001d]。GameScreenManager.Screen.Draw()[0x0001f] in /Users/ahmedhakeem/Documents/Projects/JabberEngine2/MyCode/Engine/GameScreenManager/Screen.cs:150 at ChicksnVixens.Screens.GameplayScreen.Draw()[0x00000] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / MyCode / ChicksnVixens / Screens / GameplayScreen.cs:481 at Jabber.GameScreenManager.ScreenManager.Draw()[0x00054] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / MyCode / Engine / GameScreenManager / ScreenManager.cs:92 at Jabber.BaseGame.Draw(Microsoft.Xna.Framework.GameTime)[0x0002c] in /Users/ahmedhakeem/Documents/Projects/JabberEngine2/MyCode/Engine/BaseGame.cs:95 at ChicksnVixens.ChicksnVixensGame.Draw (Microsoft.Xna.Framework.GameTime)/Users/ahmedhakeem/Documents/Projects/JabberEngine2/MyCode/ChicksnVixens/ChicksnVixensGame.csの[0x00000]:414 at Microsoft.Xna.Framework.Game.DoDraw(Microsoft.Xna.Framework.GameTime)[0x0001e] in /Users/ahmedhakeem/Documents/Projects/JabberEngine2/ExEn/ExEnCommon/Game/GameCommon.cs:205 at Microsoft.Xna .Framework.ExEnEmTouchGameView.OnRenderFrame(OpenTK.FrameEventArgs)[0x0002e] in /Users/ahmedhakeem/Documents/Projects/JabberEngine2/ExEn/ExEnEmTouch/ExEnEmTouchGameView.cs:329 at OpenTK.Platform.iPhoneOS.iPhoneOSGameView.RunIteration()[0 /Users/plasma/Source/iphone/monotouch/OpenGLES/OpenTK/Platform/iPhoneOS/iPhoneOSGameView.cs:592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in / Users / plasma / Source / iphone / monotouch / shared / Foundation / NSAction.cs:45 at(wrapper runtime-invoke)object.runtime_invoke_void_GameTime)[0x0001e] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / ExEn / ExEnCommon / Game / GameCommon.cs:205 at Microsoft.Xna.Framework.ExEnEmTouchGameView.OnRenderFrame(OpenTK.FrameEventArgs)[0x0002e] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / ExEn / ExEnEmTouch / ExEnEmTouchGameView.cs:329 at OpenTK.Platform.iPhoneOS.iPhoneOSGameView.RunIteration()[0x000af] in / Users / plasma / Source / iphone / monotouch / OpenGLES / OpenTK / Platform / iPhoneOS / iPhoneOSGameView.cs:592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in /Users/plasma/Source/iphone/monotouch/shared/Foundation/NSAction.cs:45 at(wrapper runtime-invoke)object。 runtime_invoke_void_GameTime)[0x0001e] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / ExEn / ExEnCommon / Game / GameCommon.cs:205 at Microsoft.Xna.Framework.ExEnEmTouchGameView.OnRenderFrame(OpenTK.FrameEventArgs)[0x0002e] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / ExEn / ExEnEmTouch / ExEnEmTouchGameView.cs:329 at OpenTK.Platform.iPhoneOS.iPhoneOSGameView.RunIteration()[0x000af] in / Users / plasma / Source / iphone / monotouch / OpenGLES / OpenTK / Platform / iPhoneOS / iPhoneOSGameView.cs:592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in /Users/plasma/Source/iphone/monotouch/shared/Foundation/NSAction.cs:45 at(wrapper runtime-invoke)object。 runtime_invoke_void_OnRenderFrame(OpenTK.FrameEventArgs)[0x0002e] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / ExEn / ExEnEmTouch / ExEnEmTouchGameView.cs:329 at OpenTK.Platform.iPhoneOS.iPhoneOSGameView.RunIteration()[0x000af] in / Users / plasma /Source/iphone/monotouch/OpenGLES/OpenTK/Platform/iPhoneOS/iPhoneOSGameView.cs:592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in / Users / plasma / Source / iphone / monotouch / shared / Foundation / NSAction .cs:45 at(wrapper runtime-invoke)object.runtime_invoke_void_OnRenderFrame(OpenTK.FrameEventArgs)[0x0002e] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / ExEn / ExEnEmTouch / ExEnEmTouchGameView.cs:329 at OpenTK.Platform.iPhoneOS.iPhoneOSGameView.RunIteration()[0x000af] in / Users / plasma /Source/iphone/monotouch/OpenGLES/OpenTK/Platform/iPhoneOS/iPhoneOSGameView.cs:592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in / Users / plasma / Source / iphone / monotouch / shared / Foundation / NSAction .cs:45 at(wrapper runtime-invoke)object.runtime_invoke_void_592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in /Users/plasma/Source/iphone/monotouch/shared/Foundation/NSAction.cs:45 at(wrapper runtime-invoke)object.runtime_invoke_void_592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in /Users/plasma/Source/iphone/monotouch/shared/Foundation/NSAction.cs:45 at(wrapper runtime-invoke)object.runtime_invoke_void_this _(object、intptr、intptr、intptr)at(wrapper managed-to-native)MonoTouch.UIKit.UIApplication.UIApplicationMain(int、string []、intptr、intptr)at MonoTouch.UIKit.UIApplication.Main(string [] 、string、string)[0x00038] in /Users/plasma/Source/iphone/monotouch/UIKit/UIApplication.cs:26 at ChicksnVixens.Program.Main(string [])[0x00000] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / MyCode / ChicksnVixens / MonoTouch Program.cs:24 at(wrapper runtime-invoke).runtime_invoke_void_object(object、intptr、intptr、intptr)
ネイティブスタックトレース:
0 aChicks
0x000c5d00 mono_handle_native_sigsegv + 343 1 aChicks 0x0000fce0 mono_sigsegv_signal_handler + 322 2 libSystem.B.dylib 0x95fee48b _sigtramp + 43 3 ???
0xffffffff 0x0 + 4294967295 4
GLEngine
0x08645753 gleLLVMArrayFunc + 67 5
GLEngine
0x0863cba2 gleDrawArraysOrElements_ExecCore + 856 6 GLEngine
0x08642bbe glDrawArrays_IMM_Exec + 332 7 OpenGLES
0x0087c308 glDrawArrays 0x0c3c9b34 0x0 + 205298484 9 ???
0x0c3c9a9c 0x0 + 205298332 10 ???
0x0f0956c8 0x0 + 252270280 11 ???
0x0f0939c4 0x0 + 252262852 12 ???
0x0f09397c 0x0 + 252262780 13 ???
0x0ecdb286 0x0 + 248361606 14 ???
0x0c3c709a 0x0 + 205287578 15 ???
0x0f0927c4 0x0 + 252258244 16 ???
0x0c3c44cd 0x0 + 205276365 17 ???
0x0c3c3fed 0x0 + 205275117 18 ???
0x0c3c3e9a 0x0 + 205274778 19 ???
0x0c3c3d73 0x0 + 205274483 20 ???
0x0cc03166 0x0 + 213922150 21 ???
0x0cbfd578 0x0 + 213898616 22 ???
0x0cbfd130 0x0 + 213897520 23 ???
0x05e861e8 0x0 + 99115496 24 aChicks 0x0000fa9b mono_jit_runtime_invoke + 1332 25 aChicks
0x001d9f01 mono_runtime_invoke + 137 26 aChicks
0x0027e52b monotouch_trampoline + 2527 27 Foundation
0x00619749 NSFireTimer + 125 28 CoreFoundation
の0x014398c3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION + 19 29 CoreFoundationの0x0143ae74 __CFRunLoopDoTimer + 1220年30 CoreFoundation
の0x013972c9 __CFRunLoopRun + 1817年31 CoreFoundation
の0x01396840 CFRunLoopRunSpecific + 208 32 CoreFoundation
の0x01396761 CFRunLoopRunInMode + 97 33 GraphicsServices
0x028bc1c4 GSEventRunModal + 217 34 GraphicsServices
0x028bc289 GSEventRun + 115 35のUIKit 0x008abc93 UIApplicationMain + 1160 36 ???
0x05e84b8b 0x0 + 99109771 37 ???
0x05e83fb4 0x0 + 99106740 38 ???
0x05e83cee 0x0 + 99106030 39 ???
0x05e83e46は0x0 + 99106374 40 aChicks 0x0000fa9b mono_jit_runtime_invoke + 1332年41 aChicks
0x001d9f01 mono_runtime_invoke + 137 42 aChicks
0x001dc560 mono_runtime_exec_main + 669 43 aChicks
0x001db96e mono_runtime_run_main + 843 44 aChicks
0x0009cdd2 mono_jit_exec + 200 45 aChicks
0x00003362メイン+ 3838 46 aChicks
0x00002249 _start + 208 47 aChicks
0x00002178開始+ 40gdbからのデバッグ情報:
/tmp/mono-gdb-commands.ZEI8zH:1:ソースコマンドファイルのエラー:自分自身をデバッグできません