Merged with local changes
This commit is contained in:
commit
282e04fdbd
7 changed files with 64 additions and 113 deletions
|
@ -101,14 +101,6 @@
|
||||||
<ClCompile Include="..\..\src\video\SDL_stretch.c" />
|
<ClCompile Include="..\..\src\video\SDL_stretch.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_surface.c" />
|
<ClCompile Include="..\..\src\video\SDL_surface.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_video.c" />
|
<ClCompile Include="..\..\src\video\SDL_video.c" />
|
||||||
<ClCompile Include="..\..\src\video\windowsrt\CubeRenderer.cpp">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\video\windowsrt\Direct3DBase.cpp">
|
<ClCompile Include="..\..\src\video\windowsrt\Direct3DBase.cpp">
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
|
||||||
|
@ -133,7 +125,22 @@
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\video\windowsrt\SDL_winrtframebuffer.cpp" />
|
<ClCompile Include="..\..\src\video\windowsrt\SDL_winrtframebuffer.cpp">
|
||||||
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
|
||||||
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
|
||||||
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
|
||||||
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
|
||||||
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
|
||||||
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\video\windowsrt\SDL_winrtrenderer.cpp">
|
||||||
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
|
||||||
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
|
||||||
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
|
||||||
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
|
||||||
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
|
||||||
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\video\windowsrt\SDL_winrtvideo.cpp">
|
<ClCompile Include="..\..\src\video\windowsrt\SDL_winrtvideo.cpp">
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
|
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
|
||||||
|
@ -245,13 +252,13 @@
|
||||||
<ClInclude Include="..\..\src\video\SDL_RLEaccel_c.h" />
|
<ClInclude Include="..\..\src\video\SDL_RLEaccel_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_shape_internals.h" />
|
<ClInclude Include="..\..\src\video\SDL_shape_internals.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_sysvideo.h" />
|
<ClInclude Include="..\..\src\video\SDL_sysvideo.h" />
|
||||||
<ClInclude Include="..\..\src\video\windowsrt\CubeRenderer.h" />
|
|
||||||
<ClInclude Include="..\..\src\video\windowsrt\Direct3DBase.h" />
|
<ClInclude Include="..\..\src\video\windowsrt\Direct3DBase.h" />
|
||||||
<ClInclude Include="..\..\src\video\windowsrt\DirectXHelper.h" />
|
<ClInclude Include="..\..\src\video\windowsrt\DirectXHelper.h" />
|
||||||
<ClInclude Include="..\..\src\video\windowsrt\SDLmain_WinRT_common.h" />
|
<ClInclude Include="..\..\src\video\windowsrt\SDLmain_WinRT_common.h" />
|
||||||
<ClInclude Include="..\..\src\video\windowsrt\SDL_WinRTApp.h" />
|
<ClInclude Include="..\..\src\video\windowsrt\SDL_WinRTApp.h" />
|
||||||
<ClInclude Include="..\..\src\video\windowsrt\SDL_winrtevents_c.h" />
|
<ClInclude Include="..\..\src\video\windowsrt\SDL_winrtevents_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\windowsrt\SDL_winrtframebuffer_c.h" />
|
<ClInclude Include="..\..\src\video\windowsrt\SDL_winrtframebuffer_c.h" />
|
||||||
|
<ClInclude Include="..\..\src\video\windowsrt\SDL_winrtrenderer.h" />
|
||||||
<ClInclude Include="..\..\src\video\windowsrt\SDL_winrtvideo.h" />
|
<ClInclude Include="..\..\src\video\windowsrt\SDL_winrtvideo.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
|
|
|
@ -37,8 +37,10 @@
|
||||||
#else /* fprintf, _exit(), etc. */
|
#else /* fprintf, _exit(), etc. */
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#if ! defined(__WINRT__)
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
static SDL_assert_state
|
static SDL_assert_state
|
||||||
SDL_PromptAssertion(const SDL_assert_data *data, void *userdata);
|
SDL_PromptAssertion(const SDL_assert_data *data, void *userdata);
|
||||||
|
|
|
@ -11,6 +11,9 @@ extern "C" {
|
||||||
#include "SDL_log.h"
|
#include "SDL_log.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO, WinRT: Remove reference(s) to BasicTimer.h
|
||||||
|
#include "BasicTimer.h"
|
||||||
|
|
||||||
// HACK, DLudwig: The C-style main() will get loaded via the app's
|
// HACK, DLudwig: The C-style main() will get loaded via the app's
|
||||||
// WinRT-styled main(), which is part of SDLmain_for_WinRT.cpp.
|
// WinRT-styled main(), which is part of SDLmain_for_WinRT.cpp.
|
||||||
// This seems wrong on some level, but does seem to work.
|
// This seems wrong on some level, but does seem to work.
|
||||||
|
@ -54,7 +57,7 @@ void SDL_WinRTApp::Initialize(CoreApplicationView^ applicationView)
|
||||||
CoreApplication::Resuming +=
|
CoreApplication::Resuming +=
|
||||||
ref new EventHandler<Platform::Object^>(this, &SDL_WinRTApp::OnResuming);
|
ref new EventHandler<Platform::Object^>(this, &SDL_WinRTApp::OnResuming);
|
||||||
|
|
||||||
m_renderer = ref new CubeRenderer();
|
m_renderer = ref new SDL_winrtrenderer();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SDL_WinRTApp::SetWindow(CoreWindow^ window)
|
void SDL_WinRTApp::SetWindow(CoreWindow^ window)
|
||||||
|
@ -112,9 +115,6 @@ void SDL_WinRTApp::PumpEvents()
|
||||||
if (m_windowVisible)
|
if (m_windowVisible)
|
||||||
{
|
{
|
||||||
CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent);
|
CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent);
|
||||||
m_renderer->Update(0.0f, 0.0f);
|
|
||||||
m_renderer->Render();
|
|
||||||
m_renderer->Present(); // This call is synchronized to the display frame rate.
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -123,6 +123,16 @@ void SDL_WinRTApp::PumpEvents()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SDL_WinRTApp::UpdateWindowFramebuffer(SDL_Surface * surface, SDL_Rect * rects, int numrects)
|
||||||
|
{
|
||||||
|
if (!m_windowClosed && m_windowVisible)
|
||||||
|
{
|
||||||
|
m_renderer->Update(0.0f, 0.0f);
|
||||||
|
m_renderer->Render();
|
||||||
|
m_renderer->Present(); // This call is synchronized to the display frame rate.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void SDL_WinRTApp::Uninitialize()
|
void SDL_WinRTApp::Uninitialize()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
#include "SDLmain_WinRT_common.h"
|
#include "SDLmain_WinRT_common.h"
|
||||||
#include "SDL_winrtvideo.h"
|
#include "SDL_winrtvideo.h"
|
||||||
#include "CubeRenderer.h"
|
#include "SDL_winrtrenderer.h"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
using namespace Windows::UI::Core;
|
using namespace Windows::UI::Core;
|
||||||
|
@ -26,6 +26,7 @@ internal:
|
||||||
const SDL_WindowData * GetSDLWindowData() const;
|
const SDL_WindowData * GetSDLWindowData() const;
|
||||||
bool HasSDLWindowData() const;
|
bool HasSDLWindowData() const;
|
||||||
void SetSDLWindowData(const SDL_WindowData * windowData);
|
void SetSDLWindowData(const SDL_WindowData * windowData);
|
||||||
|
void UpdateWindowFramebuffer(SDL_Surface * surface, SDL_Rect * rects, int numrects);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Event Handlers.
|
// Event Handlers.
|
||||||
|
@ -43,7 +44,7 @@ protected:
|
||||||
void OnKeyUp(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::KeyEventArgs^ args);
|
void OnKeyUp(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::KeyEventArgs^ args);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CubeRenderer^ m_renderer;
|
SDL_winrtrenderer^ m_renderer;
|
||||||
bool m_windowClosed;
|
bool m_windowClosed;
|
||||||
bool m_windowVisible;
|
bool m_windowVisible;
|
||||||
const SDL_WindowData* m_sdlWindowData;
|
const SDL_WindowData* m_sdlWindowData;
|
||||||
|
|
|
@ -24,6 +24,9 @@
|
||||||
|
|
||||||
#include "../SDL_sysvideo.h"
|
#include "../SDL_sysvideo.h"
|
||||||
#include "SDL_winrtframebuffer_c.h"
|
#include "SDL_winrtframebuffer_c.h"
|
||||||
|
#include "SDL_WinRTApp.h"
|
||||||
|
|
||||||
|
extern SDL_WinRTApp ^ SDL_WinRTGlobalApp;
|
||||||
|
|
||||||
|
|
||||||
#define WINRT_SURFACE "_SDL_WinRTSurface"
|
#define WINRT_SURFACE "_SDL_WinRTSurface"
|
||||||
|
@ -76,6 +79,9 @@ int SDL_WINRT_UpdateWindowFramebuffer(_THIS, SDL_Window * window, SDL_Rect * rec
|
||||||
SDL_GetWindowID(window), ++frame_number);
|
SDL_GetWindowID(window), ++frame_number);
|
||||||
SDL_SaveBMP(surface, file);
|
SDL_SaveBMP(surface, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDL_WinRTGlobalApp->UpdateWindowFramebuffer(surface, rects, numrects);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
#include "SDLmain_WinRT_common.h"
|
#include "SDLmain_WinRT_common.h"
|
||||||
#include "CubeRenderer.h"
|
#include "SDL_winrtrenderer.h"
|
||||||
|
|
||||||
using namespace DirectX;
|
using namespace DirectX;
|
||||||
using namespace Microsoft::WRL;
|
using namespace Microsoft::WRL;
|
||||||
using namespace Windows::Foundation;
|
using namespace Windows::Foundation;
|
||||||
using namespace Windows::UI::Core;
|
using namespace Windows::UI::Core;
|
||||||
|
|
||||||
CubeRenderer::CubeRenderer() :
|
SDL_winrtrenderer::SDL_winrtrenderer() :
|
||||||
m_loadingComplete(false),
|
m_loadingComplete(false),
|
||||||
m_indexCount(0)
|
m_vertexCount(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void CubeRenderer::CreateDeviceResources()
|
void SDL_winrtrenderer::CreateDeviceResources()
|
||||||
{
|
{
|
||||||
Direct3DBase::CreateDeviceResources();
|
Direct3DBase::CreateDeviceResources();
|
||||||
|
|
||||||
|
@ -69,16 +69,14 @@ void CubeRenderer::CreateDeviceResources()
|
||||||
auto createCubeTask = (createPSTask && createVSTask).then([this] () {
|
auto createCubeTask = (createPSTask && createVSTask).then([this] () {
|
||||||
VertexPositionColor cubeVertices[] =
|
VertexPositionColor cubeVertices[] =
|
||||||
{
|
{
|
||||||
{XMFLOAT3(-0.5f, -0.5f, -0.5f), XMFLOAT3(0.0f, 0.0f, 0.0f)},
|
{XMFLOAT3(-1.0f, -1.0f, 0.0f), XMFLOAT3(1.0f, 0.0f, 0.0f)},
|
||||||
{XMFLOAT3(-0.5f, -0.5f, 0.5f), XMFLOAT3(0.0f, 0.0f, 1.0f)},
|
{XMFLOAT3(-1.0f, 1.0f, 0.0f), XMFLOAT3(0.0f, 1.0f, 0.0f)},
|
||||||
{XMFLOAT3(-0.5f, 0.5f, -0.5f), XMFLOAT3(0.0f, 1.0f, 0.0f)},
|
{XMFLOAT3(1.0f, -1.0f, 0.0f), XMFLOAT3(0.0f, 0.0f, 1.0f)},
|
||||||
{XMFLOAT3(-0.5f, 0.5f, 0.5f), XMFLOAT3(0.0f, 1.0f, 1.0f)},
|
{XMFLOAT3(1.0f, 1.0f, 0.0f), XMFLOAT3(1.0f, 1.0f, 1.0f)},
|
||||||
{XMFLOAT3( 0.5f, -0.5f, -0.5f), XMFLOAT3(1.0f, 0.0f, 0.0f)},
|
|
||||||
{XMFLOAT3( 0.5f, -0.5f, 0.5f), XMFLOAT3(1.0f, 0.0f, 1.0f)},
|
|
||||||
{XMFLOAT3( 0.5f, 0.5f, -0.5f), XMFLOAT3(1.0f, 1.0f, 0.0f)},
|
|
||||||
{XMFLOAT3( 0.5f, 0.5f, 0.5f), XMFLOAT3(1.0f, 1.0f, 1.0f)},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
m_vertexCount = ARRAYSIZE(cubeVertices);
|
||||||
|
|
||||||
D3D11_SUBRESOURCE_DATA vertexBufferData = {0};
|
D3D11_SUBRESOURCE_DATA vertexBufferData = {0};
|
||||||
vertexBufferData.pSysMem = cubeVertices;
|
vertexBufferData.pSysMem = cubeVertices;
|
||||||
vertexBufferData.SysMemPitch = 0;
|
vertexBufferData.SysMemPitch = 0;
|
||||||
|
@ -91,42 +89,6 @@ void CubeRenderer::CreateDeviceResources()
|
||||||
&m_vertexBuffer
|
&m_vertexBuffer
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
unsigned short cubeIndices[] =
|
|
||||||
{
|
|
||||||
0,2,1, // -x
|
|
||||||
1,2,3,
|
|
||||||
|
|
||||||
4,5,6, // +x
|
|
||||||
5,7,6,
|
|
||||||
|
|
||||||
0,1,5, // -y
|
|
||||||
0,5,4,
|
|
||||||
|
|
||||||
2,6,7, // +y
|
|
||||||
2,7,3,
|
|
||||||
|
|
||||||
0,4,6, // -z
|
|
||||||
0,6,2,
|
|
||||||
|
|
||||||
1,3,7, // +z
|
|
||||||
1,7,5,
|
|
||||||
};
|
|
||||||
|
|
||||||
m_indexCount = ARRAYSIZE(cubeIndices);
|
|
||||||
|
|
||||||
D3D11_SUBRESOURCE_DATA indexBufferData = {0};
|
|
||||||
indexBufferData.pSysMem = cubeIndices;
|
|
||||||
indexBufferData.SysMemPitch = 0;
|
|
||||||
indexBufferData.SysMemSlicePitch = 0;
|
|
||||||
CD3D11_BUFFER_DESC indexBufferDesc(sizeof(cubeIndices), D3D11_BIND_INDEX_BUFFER);
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
m_d3dDevice->CreateBuffer(
|
|
||||||
&indexBufferDesc,
|
|
||||||
&indexBufferData,
|
|
||||||
&m_indexBuffer
|
|
||||||
)
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
createCubeTask.then([this] () {
|
createCubeTask.then([this] () {
|
||||||
|
@ -134,35 +96,7 @@ void CubeRenderer::CreateDeviceResources()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void CubeRenderer::CreateWindowSizeDependentResources()
|
void SDL_winrtrenderer::Update(float timeTotal, float timeDelta)
|
||||||
{
|
|
||||||
Direct3DBase::CreateWindowSizeDependentResources();
|
|
||||||
|
|
||||||
float aspectRatio = m_windowBounds.Width / m_windowBounds.Height;
|
|
||||||
float fovAngleY = 70.0f * XM_PI / 180.0f;
|
|
||||||
|
|
||||||
// Note that the m_orientationTransform3D matrix is post-multiplied here
|
|
||||||
// in order to correctly orient the scene to match the display orientation.
|
|
||||||
// This post-multiplication step is required for any draw calls that are
|
|
||||||
// made to the swap chain render target. For draw calls to other targets,
|
|
||||||
// this transform should not be applied.
|
|
||||||
XMStoreFloat4x4(
|
|
||||||
&m_constantBufferData.projection,
|
|
||||||
XMMatrixTranspose(
|
|
||||||
XMMatrixMultiply(
|
|
||||||
XMMatrixPerspectiveFovRH(
|
|
||||||
fovAngleY,
|
|
||||||
aspectRatio,
|
|
||||||
0.01f,
|
|
||||||
100.0f
|
|
||||||
),
|
|
||||||
XMLoadFloat4x4(&m_orientationTransform3D)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CubeRenderer::Update(float timeTotal, float timeDelta)
|
|
||||||
{
|
{
|
||||||
(void) timeDelta; // Unused parameter.
|
(void) timeDelta; // Unused parameter.
|
||||||
|
|
||||||
|
@ -170,11 +104,11 @@ void CubeRenderer::Update(float timeTotal, float timeDelta)
|
||||||
XMVECTOR at = XMVectorSet(0.0f, -0.1f, 0.0f, 0.0f);
|
XMVECTOR at = XMVectorSet(0.0f, -0.1f, 0.0f, 0.0f);
|
||||||
XMVECTOR up = XMVectorSet(0.0f, 1.0f, 0.0f, 0.0f);
|
XMVECTOR up = XMVectorSet(0.0f, 1.0f, 0.0f, 0.0f);
|
||||||
|
|
||||||
XMStoreFloat4x4(&m_constantBufferData.view, XMMatrixTranspose(XMMatrixLookAtRH(eye, at, up)));
|
XMStoreFloat4x4(&m_constantBufferData.view, XMMatrixIdentity());
|
||||||
XMStoreFloat4x4(&m_constantBufferData.model, XMMatrixTranspose(XMMatrixRotationY(timeTotal * XM_PIDIV4)));
|
XMStoreFloat4x4(&m_constantBufferData.model, XMMatrixIdentity());
|
||||||
}
|
}
|
||||||
|
|
||||||
void CubeRenderer::Render()
|
void SDL_winrtrenderer::Render()
|
||||||
{
|
{
|
||||||
const float midnightBlue[] = { 0.098f, 0.098f, 0.439f, 1.000f };
|
const float midnightBlue[] = { 0.098f, 0.098f, 0.439f, 1.000f };
|
||||||
m_d3dContext->ClearRenderTargetView(
|
m_d3dContext->ClearRenderTargetView(
|
||||||
|
@ -195,6 +129,8 @@ void CubeRenderer::Render()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_d3dContext->RSSetState(m_rasterState.Get());
|
||||||
|
|
||||||
m_d3dContext->OMSetRenderTargets(
|
m_d3dContext->OMSetRenderTargets(
|
||||||
1,
|
1,
|
||||||
m_renderTargetView.GetAddressOf(),
|
m_renderTargetView.GetAddressOf(),
|
||||||
|
@ -220,13 +156,7 @@ void CubeRenderer::Render()
|
||||||
&offset
|
&offset
|
||||||
);
|
);
|
||||||
|
|
||||||
m_d3dContext->IASetIndexBuffer(
|
m_d3dContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
|
||||||
m_indexBuffer.Get(),
|
|
||||||
DXGI_FORMAT_R16_UINT,
|
|
||||||
0
|
|
||||||
);
|
|
||||||
|
|
||||||
m_d3dContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
|
|
||||||
|
|
||||||
m_d3dContext->IASetInputLayout(m_inputLayout.Get());
|
m_d3dContext->IASetInputLayout(m_inputLayout.Get());
|
||||||
|
|
||||||
|
@ -248,9 +178,5 @@ void CubeRenderer::Render()
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|
||||||
m_d3dContext->DrawIndexed(
|
m_d3dContext->Draw(4, 0);
|
||||||
m_indexCount,
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
);
|
|
||||||
}
|
}
|
|
@ -16,14 +16,13 @@ struct VertexPositionColor
|
||||||
};
|
};
|
||||||
|
|
||||||
// This class renders a simple spinning cube.
|
// This class renders a simple spinning cube.
|
||||||
ref class CubeRenderer sealed : public Direct3DBase
|
ref class SDL_winrtrenderer sealed : public Direct3DBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CubeRenderer();
|
SDL_winrtrenderer();
|
||||||
|
|
||||||
// Direct3DBase methods.
|
// Direct3DBase methods.
|
||||||
virtual void CreateDeviceResources() override;
|
virtual void CreateDeviceResources() override;
|
||||||
virtual void CreateWindowSizeDependentResources() override;
|
|
||||||
virtual void Render() override;
|
virtual void Render() override;
|
||||||
|
|
||||||
// Method for updating time-dependent objects.
|
// Method for updating time-dependent objects.
|
||||||
|
@ -34,11 +33,11 @@ private:
|
||||||
|
|
||||||
Microsoft::WRL::ComPtr<ID3D11InputLayout> m_inputLayout;
|
Microsoft::WRL::ComPtr<ID3D11InputLayout> m_inputLayout;
|
||||||
Microsoft::WRL::ComPtr<ID3D11Buffer> m_vertexBuffer;
|
Microsoft::WRL::ComPtr<ID3D11Buffer> m_vertexBuffer;
|
||||||
Microsoft::WRL::ComPtr<ID3D11Buffer> m_indexBuffer;
|
|
||||||
Microsoft::WRL::ComPtr<ID3D11VertexShader> m_vertexShader;
|
Microsoft::WRL::ComPtr<ID3D11VertexShader> m_vertexShader;
|
||||||
Microsoft::WRL::ComPtr<ID3D11PixelShader> m_pixelShader;
|
Microsoft::WRL::ComPtr<ID3D11PixelShader> m_pixelShader;
|
||||||
Microsoft::WRL::ComPtr<ID3D11Buffer> m_constantBuffer;
|
Microsoft::WRL::ComPtr<ID3D11Buffer> m_constantBuffer;
|
||||||
|
Microsoft::WRL::ComPtr<ID3D11RasterizerState> m_rasterState;
|
||||||
|
|
||||||
uint32 m_indexCount;
|
uint32 m_vertexCount;
|
||||||
ModelViewProjectionConstantBuffer m_constantBufferData;
|
ModelViewProjectionConstantBuffer m_constantBufferData;
|
||||||
};
|
};
|
Loading…
Add table
Add a link
Reference in a new issue