Programmierer Hilfe gesucht für größeres Project


  • Mod

    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.



  • 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_texture

    leider 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"! 😞


  • Mod

    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 😃


  • Mod

    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!


  • Mod

    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;
    	}
    

  • Mod

    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 😉


Anmelden zum Antworten