diff --git a/msvc/RetroArch-Xbox1/RetroArch-Xbox1.vcproj b/msvc/RetroArch-Xbox1/RetroArch-Xbox1.vcproj
index 2bf7de34f7..969ec5feee 100644
--- a/msvc/RetroArch-Xbox1/RetroArch-Xbox1.vcproj
+++ b/msvc/RetroArch-Xbox1/RetroArch-Xbox1.vcproj
@@ -372,9 +372,6 @@
-
-
@@ -390,9 +387,6 @@
-
-
+#include "../../general.h"
+#include "../xdk_d3d8.h"
Font g_font;
@@ -43,7 +44,7 @@ bool Font::Create(const string &szTTFFilename)
m_pFont->Release();
word *wcPathBuf = StringToWChar(szTTFFilename);
- g_hResult = XFONT_OpenTrueTypeFont(wcPathBuf, 256 * 1024, &m_pFont);
+ HRESULT g_hResult = XFONT_OpenTrueTypeFont(wcPathBuf, 256 * 1024, &m_pFont);
delete [] wcPathBuf;
@@ -80,6 +81,7 @@ void Font::Render(const string &str, int x, int y, dword height, dword style, D3
void Font::RenderToTexture(CSurface &texture, const string &str, dword height, dword style, D3DXCOLOR color, int maxWidth, bool fade)
{
+ xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
if (m_pFont == NULL)
return;
@@ -114,7 +116,7 @@ void Font::RenderToTexture(CSurface &texture, const string &str, dword height, d
// create an temporary image surface to render to
D3DSurface *pTempSurface;
- g_video.m_pD3DDevice->CreateImageSurface(dwTextureWidth, dwTextureHeight, D3DFMT_LIN_A8R8G8B8, &pTempSurface);
+ d3d->d3d_render_device->CreateImageSurface(dwTextureWidth, dwTextureHeight, D3DFMT_LIN_A8R8G8B8, &pTempSurface);
// clear the temporary surface
{
diff --git a/xbox1/RetroLaunch/Launcher.cpp b/xbox1/RetroLaunch/Launcher.cpp
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/xbox1/RetroLaunch/Surface.cpp b/xbox1/RetroLaunch/Surface.cpp
index f8718ef968..0f6c1aa94d 100644
--- a/xbox1/RetroLaunch/Surface.cpp
+++ b/xbox1/RetroLaunch/Surface.cpp
@@ -17,6 +17,8 @@
#include "Surface.h"
#include "Debug.h"
+
+#include "../../general.h"
#include "../xdk_d3d8.h"
CSurface::CSurface()
@@ -45,10 +47,11 @@ CSurface::~CSurface()
bool CSurface::Create(const string &szFilename)
{
+ xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
if (m_bLoaded)
Destroy();
- g_hResult = D3DXCreateTextureFromFileExA(g_video.m_pD3DDevice, // d3d device
+ HRESULT g_hResult = D3DXCreateTextureFromFileExA(d3d->d3d_render_device, // d3d device
("D:\\" + szFilename).c_str(), // filename
D3DX_DEFAULT, D3DX_DEFAULT, // width/height
D3DX_DEFAULT, // mipmaps
@@ -69,7 +72,7 @@ bool CSurface::Create(const string &szFilename)
}
// create a vertex buffer for the quad that will display the texture
- g_hResult = g_video.m_pD3DDevice->CreateVertexBuffer(4 * sizeof(DrawVerticeFormats),
+ g_hResult = d3d->d3d_render_device->CreateVertexBuffer(4 * sizeof(DrawVerticeFormats),
D3DUSAGE_WRITEONLY,
D3DFVF_CUSTOMVERTEX,
D3DPOOL_MANAGED, &m_pVertexBuffer);
@@ -87,10 +90,11 @@ bool CSurface::Create(const string &szFilename)
bool CSurface::Create(dword width, dword height)
{
+ xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
if (m_bLoaded)
Destroy();
- g_hResult = g_video.m_pD3DDevice->CreateTexture(width, height, 1, 0,
+ HRESULT g_hResult = d3d->d3d_render_device->CreateTexture(width, height, 1, 0,
D3DFMT_A8R8G8B8, D3DPOOL_MANAGED,
&m_pTexture);
@@ -105,7 +109,7 @@ bool CSurface::Create(dword width, dword height)
m_imageInfo.Format = D3DFMT_A8R8G8B8;
// create a vertex buffer for the quad that will display the texture
- g_hResult = g_video.m_pD3DDevice->CreateVertexBuffer(4 * sizeof(DrawVerticeFormats),
+ g_hResult = d3d->d3d_render_device->CreateVertexBuffer(4 * sizeof(DrawVerticeFormats),
D3DUSAGE_WRITEONLY,
D3DFVF_CUSTOMVERTEX,
D3DPOOL_MANAGED, &m_pVertexBuffer);
@@ -157,6 +161,7 @@ bool CSurface::Render(int x, int y)
bool CSurface::Render(int x, int y, dword w, dword h)
{
+ xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
if (m_pTexture == NULL || m_pVertexBuffer == NULL || m_bLoaded == false)
return false;
@@ -176,7 +181,7 @@ bool CSurface::Render(int x, int y, dword w, dword h)
// load the existing vertices
/*CustomVertex*/DrawVerticeFormats *pCurVerts;
- g_hResult = m_pVertexBuffer->Lock(0, 0, (byte **)&pCurVerts, 0);
+ HRESULT g_hResult = m_pVertexBuffer->Lock(0, 0, (byte **)&pCurVerts, 0);
if (FAILED(g_hResult))
{
@@ -189,20 +194,20 @@ bool CSurface::Render(int x, int y, dword w, dword h)
m_pVertexBuffer->Unlock();
- g_video.m_pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
- g_video.m_pD3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
- g_video.m_pD3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
+ d3d->d3d_render_device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
+ d3d->d3d_render_device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
+ d3d->d3d_render_device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
// also blend the texture with the set alpha value
- g_video.m_pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
- g_video.m_pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE);
- g_video.m_pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_TEXTURE);
+ d3d->d3d_render_device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
+ d3d->d3d_render_device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE);
+ d3d->d3d_render_device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_TEXTURE);
// draw the quad
- g_video.m_pD3DDevice->SetTexture(0, m_pTexture);
- g_video.m_pD3DDevice->SetStreamSource(0, m_pVertexBuffer, sizeof(DrawVerticeFormats));
- g_video.m_pD3DDevice->SetVertexShader(D3DFVF_CUSTOMVERTEX);
- g_video.m_pD3DDevice->DrawPrimitive(D3DPT_QUADLIST, 0, 1);
+ d3d->d3d_render_device->SetTexture(0, m_pTexture);
+ d3d->d3d_render_device->SetStreamSource(0, m_pVertexBuffer, sizeof(DrawVerticeFormats));
+ d3d->d3d_render_device->SetVertexShader(D3DFVF_CUSTOMVERTEX);
+ d3d->d3d_render_device->DrawPrimitive(D3DPT_QUADLIST, 0, 1);
return true;
}
diff --git a/xbox1/RetroLaunch/Surface.h b/xbox1/RetroLaunch/Surface.h
index 752ee12f93..e9b6b42068 100644
--- a/xbox1/RetroLaunch/Surface.h
+++ b/xbox1/RetroLaunch/Surface.h
@@ -18,7 +18,6 @@
#pragma once
#include "Global.h"
-#include "Video.h"
class CSurface
{
diff --git a/xbox1/RetroLaunch/Video.cpp b/xbox1/RetroLaunch/Video.cpp
deleted file mode 100644
index 35f3c403bc..0000000000
--- a/xbox1/RetroLaunch/Video.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
- * RetroLaunch 2012
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option) any later
- * version. This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details. You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. To contact the
- * authors: Surreal64 CE Team (http://www.emuxtras.net)
- */
-
-
-#include "Video.h"
-#include "IniFile.h"
-#include "Debug.h"
-
-CVideo g_video;
-HRESULT g_hResult;
-
-CVideo::CVideo(void)
-{
-}
-
-CVideo::~CVideo(void)
-{
-}
-
-bool CVideo::SetDevice(IDirect3DDevice8 *D3D_Device)
-{
- m_pD3DDevice = D3D_Device;
- return true;
-}
-
-bool CVideo::Create(HWND hDeviceWindow, bool bWindowed)
-{
- /*
- // Create the Direct3D object (leave it DX8 or should we try DX9 for WIN32 ?)
- m_pD3D = Direct3DCreate8(D3D_SDK_VERSION);
-
- if (m_pD3D == NULL)
- return false;
-
- // set up the structure used to create the d3d device
- D3DPRESENT_PARAMETERS d3dpp;
- ZeroMemory(&d3dpp, sizeof(d3dpp));
-
- d3dpp.BackBufferWidth = 640;
- d3dpp.BackBufferHeight = 480;
- d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
- d3dpp.BackBufferCount = 1;
- //d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
- //d3dpp.EnableAutoDepthStencil = false;
- d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
-
- //Fullscreen only
- if(!bWindowed)
- {
- if(!g_iniFile.m_currentIniEntry.bVSync) {
- d3dpp.FullScreen_PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
- }else{
- d3dpp.FullScreen_PresentationInterval = D3DPRESENT_INTERVAL_ONE;
- }
- }
-
- g_hResult = m_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, NULL,
- D3DCREATE_HARDWARE_VERTEXPROCESSING,
- &d3dpp, &m_pD3DDevice);
-
- if (FAILED(g_hResult))
- {
- g_debug.Print("Error: D3DCreate(), CreateDevice()");
- return false;
- }
- // use an orthogonal matrix for the projection matrix
- D3DXMATRIX mat;
-
- D3DXMatrixOrthoOffCenterLH(&mat, 0.0f, 640.0f, 480.0f, 0.0f, 0.0f, 1.0f);
-
- m_pD3DDevice->SetTransform(D3DTS_PROJECTION, &mat);
-
- // use an identity matrix for the world and view matrices
- D3DXMatrixIdentity(&mat);
- m_pD3DDevice->SetTransform(D3DTS_WORLD, &mat);
- m_pD3DDevice->SetTransform(D3DTS_VIEW, &mat);
-
- // disable lighting
- m_pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
-
- // disable z-buffer (see autodepthstencil)
- m_pD3DDevice->SetRenderState(D3DRS_ZENABLE, FALSE );
-*/
- return true;
-}
-
-
-void CVideo::BeginRender()
-{
- m_pD3DDevice->Clear(0, NULL, D3DCLEAR_TARGET,
- D3DCOLOR_XRGB(0, 0, 0),
- 1.0f, 0);
-
- m_pD3DDevice->BeginScene();
- m_pD3DDevice->SetFlickerFilter(g_iniFile.m_currentIniEntry.dwFlickerFilter);
- m_pD3DDevice->SetSoftDisplayFilter(g_iniFile.m_currentIniEntry.bSoftDisplayFilter);
-}
-
-void CVideo::EndRender()
-{
- m_pD3DDevice->EndScene();
-
- m_pD3DDevice->Present(NULL, NULL, NULL, NULL);
-
-}
-
-void CVideo::CleanUp()
-{
- if( m_pD3DDevice != NULL)
- m_pD3DDevice->Release();
-
- if( m_pD3D != NULL)
- m_pD3D->Release();
-}
diff --git a/xbox1/RetroLaunch/Video.h b/xbox1/RetroLaunch/Video.h
deleted file mode 100644
index fc9c80e155..0000000000
--- a/xbox1/RetroLaunch/Video.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * RetroLaunch 2012
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option) any later
- * version. This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details. You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. To contact the
- * authors: Surreal64 CE Team (http://www.emuxtras.net)
- */
-
-#pragma once
-
-#include "Global.h"
-
-#undef D3DFVF_CUSTOMVERTEX
-//#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1)
-
-/*
-typedef struct CustomVertex
-{
- float x, y, z;
- dword color;
- float u, v;
- //float rhw;
-}CustomVertex;
-*/
-
-class CVideo
-{
-public:
- CVideo(void);
- ~CVideo(void);
-
- bool Create(HWND hDeviceWindow, bool bWindowed); //Device creation
- bool SetDevice(IDirect3DDevice8 *D3D_Device);
-
- void BeginRender();
- void EndRender();
- void CleanUp();
-
-public:
- /*Direct3D*/IDirect3D8 *m_pD3D; //D3D object
- /*D3DDevice*/IDirect3DDevice8 *m_pD3DDevice; //D3D device
-
-private:
-
- //nothing
-};
-
-extern CVideo g_video;
-extern HRESULT g_hResult;
diff --git a/xdk/frontend/main.c b/xdk/frontend/main.c
index ef0cfc2d95..c200967f18 100644
--- a/xdk/frontend/main.c
+++ b/xdk/frontend/main.c
@@ -93,6 +93,7 @@ static void set_default_settings (void)
static void get_environment_settings (void)
{
HRESULT ret;
+ (void)ret;
#ifdef HAVE_HDD_CACHE_PARTITION
ret = XSetFileCacheSize(0x100000);
@@ -167,7 +168,6 @@ static void configure_libretro(const char *path_prefix, const char * extension)
#ifdef _XBOX1
#include "../../xbox1/RetroLaunch/Global.h"
-#include "../../xbox1/RetroLaunch/Video.h"
#include "../../xbox1/RetroLaunch/IniFile.h"
#include "../../xbox1/RetroLaunch/IoSupport.h"
#include "../../xbox1/RetroLaunch/Input.h"
@@ -193,14 +193,6 @@ static void menu_init(void)
g_IOSupport.Mount("G:", "Harddisk0\\Partition7");
// Get RetroArch's native d3d device
- xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
-
- // Initialize Direct3D
- //if (!g_video.Create(NULL, false))
- //return;
-
- if(!g_video.SetDevice(d3d->d3d_render_device))
- return;
// Parse ini file for settings
g_iniFile.CheckForIniEntry();
@@ -218,19 +210,31 @@ static void menu_init(void)
// Build menu here (Menu state -> Main Menu)
g_menuManager.Create();
+
+ g_console.mode_switch = MODE_MENU;
}
static void menu_free(void) {}
static void menu_loop(void)
{
+ xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
//rarch_console_load_game("D:\\ssf2x.gba");
// Loop the app
while (!g_bExit)
{
- g_video.BeginRender();
+ d3d->d3d_render_device->Clear(0, NULL, D3DCLEAR_TARGET,
+ D3DCOLOR_XRGB(0, 0, 0),
+ 1.0f, 0);
+
+ d3d->d3d_render_device->BeginScene();
+ d3d->d3d_render_device->SetFlickerFilter(g_iniFile.m_currentIniEntry.dwFlickerFilter);
+ d3d->d3d_render_device->SetSoftDisplayFilter(g_iniFile.m_currentIniEntry.bSoftDisplayFilter);
+
g_input.GetInput();
g_menuManager.Update();
- g_video.EndRender();
+
+ d3d->d3d_render_device->EndScene();
+ d3d->d3d_render_device->Present(NULL, NULL, NULL, NULL);
}
}
#endif