mirror of
https://github.com/libretro/RetroArch
synced 2025-03-24 13:43:32 +00:00
xdk_resources.cpp - Cleanups
This commit is contained in:
parent
d69deba25b
commit
30bcbed9f4
@ -90,32 +90,20 @@ char g_strMediaPath[512] = "D:\\Media\\";
|
||||
|
||||
static HRESULT FindMediaFile(char *strPath, const char *strFilename, size_t strPathsize)
|
||||
{
|
||||
// Check for valid arguments
|
||||
if(strFilename == NULL || strPath == NULL)
|
||||
{
|
||||
RARCH_ERR("Util_FindMediaFile(): Invalid arguments\n" );
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
// Default path is the filename itself as a fully qualified path
|
||||
strlcpy(strPath, strFilename, strPathsize);
|
||||
|
||||
// Check for the ':' character to see if the filename is a fully
|
||||
// qualified path. If not, pre-pend the media directory
|
||||
if(strFilename[1] != ':')
|
||||
snprintf(strPath, strPathsize, "%s%s", g_strMediaPath, strFilename);
|
||||
|
||||
// Try to open the file
|
||||
HANDLE hFile = CreateFile(strPath, GENERIC_READ, FILE_SHARE_READ, NULL,
|
||||
OPEN_EXISTING, 0, NULL);
|
||||
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
RARCH_ERR("FindMediaFile(): Could not find file.\n");
|
||||
return 0x82000004;
|
||||
}
|
||||
|
||||
// Found the file. Close the file and return
|
||||
CloseHandle(hFile);
|
||||
|
||||
return S_OK;
|
||||
@ -130,31 +118,25 @@ HRESULT PackedResource::Create(const char *strFilename,
|
||||
HRESULT PackedResource::Create(const char *strFilename)
|
||||
#endif
|
||||
{
|
||||
HANDLE hFile;
|
||||
DWORD dwNumBytesRead;
|
||||
XPR_HEADER xprh;
|
||||
bool retval;
|
||||
#ifdef _XBOX1
|
||||
BOOL bHasResourceOffsetsTable = FALSE;
|
||||
char strResourcePath[512];
|
||||
|
||||
// Find the media file
|
||||
CHAR strResourcePath[512];
|
||||
if (FAILED(FindMediaFile(strResourcePath, strFilename, sizeof(strResourcePath))))
|
||||
return E_FAIL;
|
||||
else
|
||||
strFilename = strResourcePath;
|
||||
#endif
|
||||
|
||||
// Open the file
|
||||
HANDLE hFile;
|
||||
DWORD dwNumBytesRead;
|
||||
hFile = CreateFile(strFilename, GENERIC_READ, FILE_SHARE_READ, NULL,
|
||||
OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL);
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
RARCH_ERR( "PackedResource::Create(): File <%s> not found.\n", strFilename );
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
// Read in and verify the XPR magic header
|
||||
XPR_HEADER xprh;
|
||||
bool retval = ReadFile( hFile, &xprh, sizeof( XPR_HEADER ), &dwNumBytesRead, NULL );
|
||||
retval = ReadFile(hFile, &xprh, sizeof(XPR_HEADER), &dwNumBytesRead, NULL);
|
||||
|
||||
#if defined(_XBOX1)
|
||||
if(xprh.dwMagic == XPR0_MAGIC_VALUE)
|
||||
@ -165,7 +147,6 @@ HRESULT PackedResource::Create(const char *strFilename)
|
||||
#elif defined(_XBOX360)
|
||||
if(!retval)
|
||||
{
|
||||
RARCH_ERR("Error reading XPR header in file %s.\n", strFilename );
|
||||
CloseHandle(hFile);
|
||||
return E_FAIL;
|
||||
}
|
||||
@ -173,7 +154,6 @@ HRESULT PackedResource::Create(const char *strFilename)
|
||||
if (xprh.dwMagic != XPR2_MAGIC_VALUE)
|
||||
#endif
|
||||
{
|
||||
RARCH_ERR( "Invalid Xbox Packed Resource (.xpr) file: Magic = 0x%08lx\n", xprh.dwMagic );
|
||||
CloseHandle(hFile);
|
||||
return E_FAIL;
|
||||
}
|
||||
@ -191,7 +171,6 @@ HRESULT PackedResource::Create(const char *strFilename)
|
||||
m_pSysMemData = (BYTE*)malloc(m_dwSysMemDataSize);
|
||||
if (m_pSysMemData == NULL)
|
||||
{
|
||||
RARCH_ERR( "Could not allocate system memory.\n" );
|
||||
m_dwSysMemDataSize = 0;
|
||||
return E_FAIL;
|
||||
}
|
||||
@ -206,7 +185,6 @@ HRESULT PackedResource::Create(const char *strFilename)
|
||||
|
||||
if(m_pVidMemData == NULL)
|
||||
{
|
||||
RARCH_ERR( "Could not allocate physical memory.\n" );
|
||||
m_dwSysMemDataSize = 0;
|
||||
m_dwVidMemDataSize = 0;
|
||||
free(m_pSysMemData);
|
||||
@ -218,7 +196,6 @@ HRESULT PackedResource::Create(const char *strFilename)
|
||||
if( !ReadFile( hFile, m_pSysMemData, m_dwSysMemDataSize, &dwNumBytesRead, NULL) ||
|
||||
!ReadFile( hFile, m_pVidMemData, m_dwVidMemDataSize, &dwNumBytesRead, NULL))
|
||||
{
|
||||
RARCH_ERR( "Unable to read Xbox Packed Resource (.xpr) file\n" );
|
||||
CloseHandle( hFile);
|
||||
return E_FAIL;
|
||||
}
|
||||
@ -238,14 +215,11 @@ HRESULT PackedResource::Create(const char *strFilename)
|
||||
// Patch up the resources
|
||||
for(DWORD i = 0; i < m_dwNumResourceTags; i++)
|
||||
{
|
||||
m_pResourceTags[i].strName = ( CHAR* )( m_pSysMemData + ( DWORD )m_pResourceTags[i].strName );
|
||||
m_pResourceTags[i].strName = (char*)(m_pSysMemData + (DWORD)m_pResourceTags[i].strName);
|
||||
#ifdef _XBOX360
|
||||
// Fixup the texture memory
|
||||
if((m_pResourceTags[i].dwType & 0xffff0000) == (RESOURCETYPE_TEXTURE & 0xffff0000))
|
||||
{
|
||||
D3DTexture *pTexture = (D3DTexture*)&m_pSysMemData[m_pResourceTags[i].dwOffset];
|
||||
|
||||
// Adjust Base address according to where memory was allocated
|
||||
XGOffsetBaseTextureAddress(pTexture, m_pVidMemData, m_pVidMemData);
|
||||
}
|
||||
#endif
|
||||
|
@ -22,13 +22,13 @@ DWORD XBResource_SizeOf( LPDIRECT3DRESOURCE pResource );
|
||||
struct XBRESOURCE
|
||||
{
|
||||
#if defined(_XBOX1)
|
||||
CHAR* strName;
|
||||
char *strName;
|
||||
DWORD dwOffset;
|
||||
#elif defined(_XBOX360)
|
||||
DWORD dwType;
|
||||
DWORD dwOffset;
|
||||
DWORD dwSize;
|
||||
CHAR* strName;
|
||||
char *strName;
|
||||
#endif
|
||||
};
|
||||
|
||||
@ -107,15 +107,15 @@ class PackedResource
|
||||
{ return (LPDIRECT3DVERTEXBUFFER)GetResource( dwOffset ); }
|
||||
|
||||
// Functions to retrieve resources by their name
|
||||
void *GetData( const CHAR* strName ) const;
|
||||
void *GetData( const char* strName ) const;
|
||||
|
||||
LPDIRECT3DRESOURCE GetResource( const CHAR* strName ) const
|
||||
LPDIRECT3DRESOURCE GetResource( const char* strName ) const
|
||||
{ return RegisterResource( (LPDIRECT3DRESOURCE)GetData( strName ) ); }
|
||||
|
||||
LPDIRECT3DTEXTURE GetTexture( const CHAR* strName ) const
|
||||
LPDIRECT3DTEXTURE GetTexture( const char* strName ) const
|
||||
{ return (LPDIRECT3DTEXTURE)GetResource( strName ); }
|
||||
|
||||
LPDIRECT3DVERTEXBUFFER GetVertexBuffer( const CHAR* strName ) const
|
||||
LPDIRECT3DVERTEXBUFFER GetVertexBuffer( const char* strName ) const
|
||||
{ return (LPDIRECT3DVERTEXBUFFER)GetResource( strName ); }
|
||||
|
||||
// Constructor/destructor
|
||||
|
Loading…
x
Reference in New Issue
Block a user