Programmierer Hilfe gesucht für größeres Project
-
rapso schrieb:
wenn ich sowas schreibe, implementier ich erstmal alles dummy funktionen ala
void glClear(...) { assert(0); }
und starte dann eine applikaion meines vertrauens (koenntest z.b. quake3a nehmen) und implementierst stueck fuer stueck jede funktion die anschlaegt.
sicherlich benutzt so ziemlich kein spiel/program _alle_ funktionen, aber ohne testprogramm willkuerlich zu implementieren wird dich auch nicht weiterbringen.
OK danke das ist schon mal ein anfang!
-
Hallo ich mal wieder...
Ich hab mir jetzt erstmal ein Program rausgesucht was nicht soviele Api's verwendet...
GL_OES_fixed_point
GL_OES_single_precision
GL_OES_read_format
GL_OES_query_matrix
GL_OES_point_size_array
GL_OES_point_sprite
GL_OES_compressed_paletted_textureleider hab ich keine Ahnung von Direct3D Mobile und weiß daher nicht die entprechenden gegenstücke, kennt da jemand eine seite im Inet die einen Vergleich machen
hab ewig gegooglet aber das ist "wie die nadel im heuhaufen"!
-
die dokumentation zu D3D ist im sdk dabei.
eine seite die 1:1 zu allen opengl dingen aequivalente dinge in d3d aufzeigt wirst du nicht finden, das ist teil deiner arbeit. verstehe opengl, verstehe d3d und dann mappe so gut es geht von ogl auf d3d.
-
Hallo ich mal wieder
Hab jetzt eine dll mit der die Api's abgefangen werden...
Jetzt muss ich Direct3D (wichtig Mobile) initialisieren! Hab dafür folgenden Code aus dem SDK aber ich krieg den irgenwie nicht richtig gestartet
#pragma comment(linker, "/nodefaultlib:oldnames.lib") #include <windows.h> #include <d3dm.h> #include <aygshell.h> #include "include\Api.h" //----------------------------------------------------------------------------- // Global variables //----------------------------------------------------------------------------- LPDIRECT3DMOBILE g_pD3DM = NULL; // Used to create the // D3DMDevice LPDIRECT3DMOBILEDEVICE g_pd3dmDevice = NULL; // Our rendering // device HMODULE g_hRefDLL = NULL; // DLL handle for // d3dmref.dll bool g_bUseRef = false; // Flag denoting use // of d3dmref HRESULT InitD3DM( HWND hWnd ) { // Create the D3DM object, which is needed to create the // D3DMDevice. ///if( NULL == ( g_pD3DM = Direct3DMobileCreate( D3DM_SDK_VERSION ) ) ) DAS MUSSTE ICH AUSKOMMENTIEREN DA ICH SONST EINEN FEHLER BEKOMMEN HAB!!!!! /// return E_FAIL; // Set up the structure used to create the D3DMDevice. Most // parameters are zeroed out. We set Windowed to TRUE, since we want // to do D3DM in a window, and then set the SwapEffect to // "discard", which is the most efficient method of // presenting the back buffer to the display. And we request a back // buffer format that matches the current desktop display // format. D3DMPRESENT_PARAMETERS d3dmpp; memset( &d3dmpp, 0, sizeof(d3dmpp) ); d3dmpp.Windowed = TRUE; d3dmpp.SwapEffect = D3DMSWAPEFFECT_DISCARD; d3dmpp.BackBufferFormat = D3DMFMT_UNKNOWN; // Create the Direct3D Mobile device. UINT uAdapter; if (g_bUseRef) { // Load the D3DM reference driver DLL g_hRefDLL = (HMODULE)LoadLibrary(TEXT("d3dmref.dll")); if (NULL == g_hRefDLL) { OutputDebugString(TEXT("Unable to load D3DM reference driver DLL.\n")); return E_FAIL; } // Get the reference driver's entry point void* pfnD3DMInit = GetProcAddress(g_hRefDLL, TEXT("D3DM_Initialize")); if( NULL == pfnD3DMInit ) { OutputDebugString(TEXT("Unable to retrieve D3DM reference driver entry point.\n")); return E_FAIL; } // Register the software device if( FAILED( g_pD3DM->RegisterSoftwareDevice(pfnD3DMInit) ) ) { OutputDebugString(TEXT("Unable to register D3DM reference driver.\n")); return E_FAIL; } uAdapter = D3DMADAPTER_REGISTERED_DEVICE; } else { // Use the default system D3DM driver uAdapter = D3DMADAPTER_DEFAULT; } if( FAILED( g_pD3DM->CreateDevice( uAdapter, D3DMDEVTYPE_DEFAULT, hWnd, 0, &d3dmpp, &g_pd3dmDevice ) ) ) { OutputDebugString(TEXT("Unable to create a D3DM device.\n")); return E_FAIL; } // Device state would normally be set here return S_OK; }
und hier die Api entrys
#define EGL_FALSE 0 #define EGL_TRUE 1 extern "C" { __declspec(dllexport) bool eglGetDisplay() { return (0); } __declspec(dllexport) bool eglInitialize() { //Hier soll Direct3D gestartet werden und wenn erfolgreich True zurückgeben... return (EGL_TRUE); } __declspec(dllexport) int eglGetError() { return (1); } __declspec(dllexport) int eglGetConfigs() { return (0); } __declspec(dllexport) int eglChooseConfig() { return (2); } }
Ich hoffe mir kann hier einer weiterhelfen
-
D-Two schrieb:
Ich hoffe mir kann hier einer weiterhelfen
aber klar, was genau ist die fragestellung
-
rapso schrieb:
D-Two schrieb:
Ich hoffe mir kann hier einer weiterhelfen
aber klar, was genau ist die fragestellung
Mein Problem ist das ich es nicht hin bekomm an der "zeile 13 zweiter Code" dieses "HRESULT Init3D" abzufragen
das mir ein "True" zurück geben soll wenn Direct3D initialiesiert ist!
-
wieso bekommst du es nicht hin.
-
rapso schrieb:
wieso bekommst du es nicht hin.
Tja gute frage der sagt mir immer "InitD3DM" ist ein nicht deklarierter bezeichner!
Aber ich weiß aber auch nicht wie ich es genau abrufe... Kannst du mir da helfen?
habs so z.b probiert
__declspec(dllexport) bool eglInitialize() { return HRESULT InitD3DM; }
-
ich glaube ich verstehe nicht ganz. es sieht fuer mich aus als ob du nicht weisst wie man eine funktion aufruf. quasi grundlage c(++), versteh ich das richtig, oder ist es doch ein graphikprogrammierungsproblem
-
rapso schrieb:
ich glaube ich verstehe nicht ganz. es sieht fuer mich aus als ob du nicht weisst wie man eine funktion aufruf. quasi grundlage c(++), versteh ich das richtig, oder ist es doch ein graphikprogrammierungsproblem
Dann zeig mir doch mal wie´s richtig aussieht