VirtualBox

Changeset 46660 in vbox for trunk/src/VBox/GuestHost


Ignore:
Timestamp:
Jun 19, 2013 2:09:23 PM (12 years ago)
Author:
vboxsync
Message:

crOpenGL: bugfix

Location:
trunk/src/VBox/GuestHost/OpenGL
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/OpenGL/Makefile.kmk

    r46515 r46660  
    115115VBoxOGLcrutil_LIBS.win = \
    116116        $(PATH_SDK_$(VBOX_WINDDK)_LIB)/ddraw.lib \
    117         $(PATH_SDK_$(VBOX_WINDDK)_LIB)/dxguid.lib
     117        $(PATH_SDK_$(VBOX_WINDDK)_LIB)/dxguid.lib \
     118        $(PATH_SDK_$(VBOX_WINDDK)_LIB)/shlwapi.lib
    118119VBoxOGLcrutil_LIBS = \
    119120        $(VBOX_LIB_IPRT_GUEST_R3_SHARED) \
    120121        $(VBOX_LIB_VBGL_R3_SHARED)
     122
     123# Needed by GDEbuger
     124ifdef CR_NO_GL_SYSTEM_PATH
     125VBoxOGLcrutil_DEFS       += CR_NO_GL_SYSTEM_PATH
     126endif
    121127ifdef VBOX_WITH_CRHGSMI
    122128VBoxOGLcrutil_DEFS.win    += VBOX_WITH_CRHGSMI
  • trunk/src/VBox/GuestHost/OpenGL/spu_loader/glloader.py

    r40691 r46660  
    6464#else
    6565#define GLLOADER_APIENTRY
    66 #endif
    67 
    68 #if defined(WINDOWS) && (defined(DEBUG_leo) || defined(DEBUG_ll158262) || defined(DEBUG_misha))
    69 # define CR_NO_GL_SYSTEM_PATH 1
    7066#endif
    7167
  • trunk/src/VBox/GuestHost/OpenGL/util/dll.c

    r33540 r46660  
    1717#if defined(IRIX) || defined(IRIX64) || defined(Linux) || defined(FreeBSD) || defined(AIX) || defined(DARWIN) || defined(SunOS) || defined(OSF1)
    1818#include <dlfcn.h>
     19#endif
     20
     21#ifdef WINDOWS
     22#include <Shlwapi.h>
    1923#endif
    2024
     
    147151
    148152#endif
    149 
    150153
    151154/*
     
    163166        CRDLL *dll;
    164167        char *dll_err;
     168#if defined(WINDOWS)
     169    char   szPath[MAX_PATH];
     170
     171    (void) resolveGlobal;
     172
     173# ifndef CR_NO_GL_SYSTEM_PATH
     174    if (PathIsRelative(dllname))
     175    {
     176        size_t cbName  = strlen(dllname) + 1;
     177#  ifdef IN_GUEST
     178        UINT   cchPath = GetSystemDirectoryA(szPath, sizeof(szPath));
     179#  else
     180        UINT   cchPath = GetModuleFileNameA(NULL, szPath, sizeof(szPath));
     181        if (cchPath != 0 && cchPath <= sizeof(szPath))
     182        {
     183            char * pszSlashFile = strrchr(szPath, '\\');
     184            if (pszSlashFile)
     185            {
     186                cchPath = pszSlashFile - szPath;
     187            }
     188        }
     189#  endif
     190
     191        if (cchPath + 1 + cbName > sizeof(szPath))
     192        {
     193            crError("invalid path specified");
     194            SetLastError(ERROR_FILENAME_EXCED_RANGE);
     195            return NULL;
     196        }
     197        szPath[cchPath] = '\\';
     198        memcpy(&szPath[cchPath + 1], dllname, cbName);
     199
     200        dllname = szPath;
     201    }
     202# endif // CR_NO_GL_SYSTEM_PATH
     203#endif
    165204
    166205        dll = (CRDLL *) crAlloc( sizeof( CRDLL ) );
     
    168207
    169208#if defined(WINDOWS)
    170         (void) resolveGlobal;
    171         dll->hinstLib = LoadLibrary( dllname );
    172         dll_err = NULL;
     209    dll->hinstLib = LoadLibrary( dllname );
     210    if (!dll->hinstLib)
     211    {
     212        crError("failed to load dll %s", dllname);
     213    }
     214    dll_err = NULL;
    173215#elif defined(DARWIN)
    174216        /* XXX \todo Get better error handling in here */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette