diff --git a/gfx/d3d9/d3d_wrapper.c b/gfx/d3d9/d3d_wrapper.c index f6733f200c..aa1680896d 100644 --- a/gfx/d3d9/d3d_wrapper.c +++ b/gfx/d3d9/d3d_wrapper.c @@ -14,10 +14,17 @@ * If not, see . */ +#include "d3d.hpp" #include "d3d_wrapper.h" +#include "render_chain.hpp" -void d3d_swap(d3d_video_t *d3d, LPDIRECT3DDEVICE dev) +void d3d_swap(void *data, LPDIRECT3DDEVICE dev) { + d3d_video_t *d3d = (d3d_video_t*)data; + + if (!d3d) + return; + #if defined(_XBOX1) D3DDevice_Swap(0); #elif defined(_XBOX360) @@ -56,7 +63,7 @@ void d3d_set_stream_source(LPDIRECT3DDEVICE dev, unsigned stream_no, D3DDevice_SetStreamSource_Inline(dev, stream_no, stream_vertbuf, offset_bytes, stride); #else - dev->SetStreamSource(steam_no, stream_vertbuf, offset_bytes, stride); + dev->SetStreamSource(stream_no, stream_vertbuf, offset_bytes, stride); #endif } @@ -137,7 +144,7 @@ void d3d_lockrectangle_clear(LPDIRECT3DTEXTURE tex, D3DTexture_LockRect(tex, level, &lock_rect, &rect, flags); memset(lock_rect.pBits, 0, tex_height * lock_rect.Pitch); #else - if (SUCCEEDED(tex->LockRect(level, &lock_rect, rect, flags))) + if (SUCCEEDED(tex->LockRect(level, &lock_rect, &rect, flags))) { memset(lock_rect.pBits, level, tex_height * lock_rect.Pitch); tex->UnlockRect(0); @@ -145,12 +152,18 @@ void d3d_lockrectangle_clear(LPDIRECT3DTEXTURE tex, #endif } -void d3d_textureblit(d3d_video_t *d3d, +void d3d_textureblit(void *data, void *renderchain_data, LPDIRECT3DTEXTURE tex, D3DSURFACE_DESC desc, D3DLOCKED_RECT lr, const void *frame, unsigned width, unsigned height, unsigned pitch) { + d3d_video_t *d3d = (d3d_video_t*)d3d; (void)desc; + (void)d3d; + + if (!d3d) + return; + #if defined(_XBOX360) tex->GetLevelDesc(0, &desc); XGCopySurface(lr.pBits, lr.Pitch, width, height, desc.Format, NULL, @@ -163,13 +176,18 @@ void d3d_textureblit(d3d_video_t *d3d, memcpy(out, in, width * d3d->pixel_size); } #else + renderchain_t *chain = (renderchain_t*)renderchain_data; + + if (!chain) + return; + if (SUCCEEDED(tex->LockRect(0, &lr, NULL, D3DLOCK_NOSYSLOCK))) { for (unsigned y = 0; y < height; y++) { const uint8_t *in = (const uint8_t*)frame + y * pitch; uint8_t *out = (uint8_t*)lr.pBits + y * lr.Pitch; - memcpy(out, in, width * d3d->pixel_size); + memcpy(out, in, width * chain->pixel_size); } tex->UnlockRect(0); } diff --git a/gfx/d3d9/d3d_wrapper.h b/gfx/d3d9/d3d_wrapper.h index f6a3e75880..8bf642d73a 100644 --- a/gfx/d3d9/d3d_wrapper.h +++ b/gfx/d3d9/d3d_wrapper.h @@ -20,7 +20,7 @@ #include "../context/win32_common.h" #include "d3d_defines.h" -void d3d_swap(d3d_video_t *d3d, LPDIRECT3DDEVICE dev); +void d3d_swap(void *data, LPDIRECT3DDEVICE dev); HRESULT d3d_create_vertex_buffer(LPDIRECT3DDEVICE dev, unsigned length, unsigned usage, unsigned fvf, @@ -50,7 +50,7 @@ void d3d_lockrectangle_clear(LPDIRECT3DTEXTURE tex, unsigned level, D3DLOCKED_RECT lock_rect, RECT rect, unsigned flags); -void d3d_textureblit(d3d_video_t *d3d, +void d3d_textureblit(void *data, LPDIRECT3DTEXTURE tex, D3DSURFACE_DESC desc, D3DLOCKED_RECT lr, const void *frame, unsigned width, unsigned height, unsigned pitch); diff --git a/gfx/d3d9/render_chain.cpp b/gfx/d3d9/render_chain.cpp index 2359affcf0..d3f7812f14 100644 --- a/gfx/d3d9/render_chain.cpp +++ b/gfx/d3d9/render_chain.cpp @@ -161,7 +161,7 @@ bool renderchain_add_pass(void *data, const LinkInfo *info) ? D3DUSAGE_SOFTWAREPROCESSING : 0, 0, D3DPOOL_DEFAULT, - &pass.vertex_buf, + pass.vertex_buf, NULL))) return false; diff --git a/msvc/msvc-2010/RetroArch-msvc2010.vcxproj b/msvc/msvc-2010/RetroArch-msvc2010.vcxproj index 3bc0a7e43f..f30852001b 100644 --- a/msvc/msvc-2010/RetroArch-msvc2010.vcxproj +++ b/msvc/msvc-2010/RetroArch-msvc2010.vcxproj @@ -219,6 +219,7 @@ + @@ -423,4 +424,4 @@ - + \ No newline at end of file diff --git a/msvc/msvc-2010/RetroArch-msvc2010.vcxproj.filters b/msvc/msvc-2010/RetroArch-msvc2010.vcxproj.filters index c9ace06b72..2d78673129 100644 --- a/msvc/msvc-2010/RetroArch-msvc2010.vcxproj.filters +++ b/msvc/msvc-2010/RetroArch-msvc2010.vcxproj.filters @@ -1,490 +1,494 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - gfx - - - gfx - - - gfx - - - frontend\menu - - - frontend\menu\disp - - - gfx\glsym - - - gfx\glsym - - - audio - - - audio - - - audio - - - gfx\math - - - gfx\math - - - gfx - - - gfx - - - gfx - - - gfx - - - gfx\context - - - audio - - - audio - - - audio - - - input - - - input - - - input - - - input - - - audio - - - gfx - - - gfx\rpng - - - input - - - compat - - - frontend - - - frontend - - - gfx\scaler - - - gfx\scaler - - - gfx\scaler - - - gfx\scaler - - - gfx\d3d9 - - - compat\rxml - - - input\autoconf - - - gfx\d3d9 - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - deps\zlib - - - gfx\fonts - - - gfx\fonts - - - gfx\fonts - - - gfx\fonts - - - gfx\fonts - - - gfx\fonts - - - input - - - frontend\menu - - - frontend\menu - - - frontend\menu - - - gfx\context - - - gfx - - - audio - - - frontend\menu\backend - - - gfx - - - frontend\platform - - - gfx\image - - - audio - - - - - - - - - record - - - gfx\context - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - audio - - - audio - - - audio - - - audio - - - compat\rxml - - - frontend - - - frontend - - - frontend\menu - - - frontend\menu - - - frontend\menu - - - frontend\menu - - - frontend\menu\backend - - - frontend\menu\disp - - - gfx - - - gfx - - - gfx - - - gfx - - - gfx - - - gfx - - - gfx - - - gfx - - - gfx - - - gfx\d3d9 - - - gfx\d3d9 - - - gfx\fonts - - - gfx\fonts - - - gfx\fonts - - - gfx\glsym - - - gfx\glsym - - - gfx\image - - - gfx\math - - - gfx\math - - - gfx\rpng - - - gfx\scaler - - - gfx\scaler - - - gfx\scaler - - - gfx\scaler - - - input - - - input - - - input\autoconf - - - input - - - gfx\context - - - record - - - - - - - - {8e47cc2f-ec74-4943-b7b7-156705b5d06e} - - - {70d71fcb-ca47-4008-a027-26ed3eaa1f16} - - - {6a00f197-1398-4044-bbf1-ee767df7a2ee} - - - {45fc4432-da59-4c73-a194-1fd2155489bc} - - - {98e75d1b-5c77-4e09-ba68-248974772850} - - - {a4e2c91e-3109-4ef9-a5ae-a42dc713c499} - - - {f2f1e12e-ac10-4b0e-aa95-7a4b6a555d44} - - - {c5041859-b61d-41bb-8f3a-f596248b1132} - - - {46e89489-2413-4645-aef3-66c7d9dd9dca} - - - {c7cbb180-c629-4897-89f0-a4298eaf5f27} - - - {a6b082bc-7b37-4715-8d02-701cc9acae5c} - - - {6489e28b-b1bf-45a3-ab30-4d9a3e68c57b} - - - {21c771b7-6971-4953-83d7-d1f83239d490} - - - {8cc14084-f5b9-4166-81ac-3f66afd6527d} - - - {c2ea7f2b-5a09-4f28-8bbe-a628bd3a0bdd} - - - {a923ed53-ddfb-47d1-a5e7-ec6105c4bd79} - - - {d1a36d53-e5e6-46a5-b5b4-b43794342cd1} - - - {cf7c2fb9-ca3c-468e-af4f-74c652b3e5fe} - - - {dd1ca879-56f4-43f6-8bd8-ae50222061e8} - - - {09d78055-1c93-4f12-ae3e-97aaa90cf78f} - - - {4a5338d9-92ad-4d07-bb1a-97bd6eb475e4} - - - {5a80dd03-b4d7-4118-92ff-55a601fd80fc} - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gfx + + + gfx + + + gfx + + + frontend\menu + + + frontend\menu\disp + + + gfx\glsym + + + gfx\glsym + + + audio + + + audio + + + audio + + + gfx\math + + + gfx\math + + + gfx + + + gfx + + + gfx + + + gfx + + + gfx\context + + + audio + + + audio + + + audio + + + input + + + input + + + input + + + input + + + audio + + + gfx + + + gfx\rpng + + + input + + + compat + + + frontend + + + frontend + + + gfx\scaler + + + gfx\scaler + + + gfx\scaler + + + gfx\scaler + + + gfx\d3d9 + + + compat\rxml + + + input\autoconf + + + gfx\d3d9 + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + deps\zlib + + + gfx\fonts + + + gfx\fonts + + + gfx\fonts + + + gfx\fonts + + + gfx\fonts + + + gfx\fonts + + + input + + + frontend\menu + + + frontend\menu + + + frontend\menu + + + gfx\context + + + gfx + + + audio + + + frontend\menu\backend + + + gfx + + + frontend\platform + + + gfx\image + + + audio + + + + + + + + + record + + + gfx\context + + + + gfx\d3d9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + audio + + + audio + + + audio + + + audio + + + compat\rxml + + + frontend + + + frontend + + + frontend\menu + + + frontend\menu + + + frontend\menu + + + frontend\menu + + + frontend\menu\backend + + + frontend\menu\disp + + + gfx + + + gfx + + + gfx + + + gfx + + + gfx + + + gfx + + + gfx + + + gfx + + + gfx + + + gfx\d3d9 + + + gfx\d3d9 + + + gfx\fonts + + + gfx\fonts + + + gfx\fonts + + + gfx\glsym + + + gfx\glsym + + + gfx\image + + + gfx\math + + + gfx\math + + + gfx\rpng + + + gfx\scaler + + + gfx\scaler + + + gfx\scaler + + + gfx\scaler + + + input + + + input + + + input\autoconf + + + input + + + gfx\context + + + record + + + + + + + + {8e47cc2f-ec74-4943-b7b7-156705b5d06e} + + + {70d71fcb-ca47-4008-a027-26ed3eaa1f16} + + + {6a00f197-1398-4044-bbf1-ee767df7a2ee} + + + {45fc4432-da59-4c73-a194-1fd2155489bc} + + + {98e75d1b-5c77-4e09-ba68-248974772850} + + + {a4e2c91e-3109-4ef9-a5ae-a42dc713c499} + + + {f2f1e12e-ac10-4b0e-aa95-7a4b6a555d44} + + + {c5041859-b61d-41bb-8f3a-f596248b1132} + + + {46e89489-2413-4645-aef3-66c7d9dd9dca} + + + {c7cbb180-c629-4897-89f0-a4298eaf5f27} + + + {a6b082bc-7b37-4715-8d02-701cc9acae5c} + + + {6489e28b-b1bf-45a3-ab30-4d9a3e68c57b} + + + {21c771b7-6971-4953-83d7-d1f83239d490} + + + {8cc14084-f5b9-4166-81ac-3f66afd6527d} + + + {c2ea7f2b-5a09-4f28-8bbe-a628bd3a0bdd} + + + {a923ed53-ddfb-47d1-a5e7-ec6105c4bd79} + + + {d1a36d53-e5e6-46a5-b5b4-b43794342cd1} + + + {cf7c2fb9-ca3c-468e-af4f-74c652b3e5fe} + + + {dd1ca879-56f4-43f6-8bd8-ae50222061e8} + + + {09d78055-1c93-4f12-ae3e-97aaa90cf78f} + + + {4a5338d9-92ad-4d07-bb1a-97bd6eb475e4} + + + {5a80dd03-b4d7-4118-92ff-55a601fd80fc} + + \ No newline at end of file