mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-12 02:41:14 +00:00
124 lines
2.4 KiB
C++
124 lines
2.4 KiB
C++
#include "d3drm_impl.h"
|
|
#include "d3drmdevice_impl.h"
|
|
#include "d3drmobject_impl.h"
|
|
#include "d3drmrenderer.h"
|
|
#include "d3drmviewport_impl.h"
|
|
#include "ddraw_impl.h"
|
|
#include "miniwin.h"
|
|
#include "miniwin/d3drm.h"
|
|
|
|
#include <SDL3/SDL.h>
|
|
|
|
Direct3DRMDevice2Impl::Direct3DRMDevice2Impl(DWORD width, DWORD height, Direct3DRMRenderer* renderer)
|
|
: m_width(width), m_height(height), m_renderer(renderer), m_viewports(new Direct3DRMViewportArrayImpl)
|
|
{
|
|
}
|
|
|
|
Direct3DRMDevice2Impl::~Direct3DRMDevice2Impl()
|
|
{
|
|
for (int i = 0; i < m_viewports->GetSize(); i++) {
|
|
IDirect3DRMViewport* viewport;
|
|
m_viewports->GetElement(i, &viewport);
|
|
static_cast<Direct3DRMViewportImpl*>(viewport)->CloseDevice();
|
|
viewport->Release();
|
|
}
|
|
m_viewports->Release();
|
|
delete m_renderer;
|
|
}
|
|
|
|
DWORD Direct3DRMDevice2Impl::GetWidth()
|
|
{
|
|
return m_width;
|
|
}
|
|
|
|
DWORD Direct3DRMDevice2Impl::GetHeight()
|
|
{
|
|
return m_height;
|
|
}
|
|
|
|
HRESULT Direct3DRMDevice2Impl::SetBufferCount(int count)
|
|
{
|
|
MINIWIN_NOT_IMPLEMENTED();
|
|
return DD_OK;
|
|
}
|
|
|
|
DWORD Direct3DRMDevice2Impl::GetBufferCount()
|
|
{
|
|
MINIWIN_NOT_IMPLEMENTED();
|
|
return 2;
|
|
}
|
|
|
|
HRESULT Direct3DRMDevice2Impl::SetShades(DWORD shadeCount)
|
|
{
|
|
MINIWIN_NOT_IMPLEMENTED();
|
|
return DD_OK;
|
|
}
|
|
|
|
HRESULT Direct3DRMDevice2Impl::GetShades()
|
|
{
|
|
MINIWIN_NOT_IMPLEMENTED();
|
|
return DD_OK;
|
|
}
|
|
|
|
HRESULT Direct3DRMDevice2Impl::SetQuality(D3DRMRENDERQUALITY quality)
|
|
{
|
|
MINIWIN_NOT_IMPLEMENTED();
|
|
return DD_OK;
|
|
}
|
|
|
|
D3DRMRENDERQUALITY Direct3DRMDevice2Impl::GetQuality()
|
|
{
|
|
MINIWIN_NOT_IMPLEMENTED();
|
|
return D3DRMRENDERQUALITY::GOURAUD;
|
|
}
|
|
|
|
HRESULT Direct3DRMDevice2Impl::SetDither(BOOL dither)
|
|
{
|
|
MINIWIN_NOT_IMPLEMENTED();
|
|
return DD_OK;
|
|
}
|
|
|
|
BOOL Direct3DRMDevice2Impl::GetDither()
|
|
{
|
|
MINIWIN_NOT_IMPLEMENTED();
|
|
return false;
|
|
}
|
|
|
|
HRESULT Direct3DRMDevice2Impl::SetTextureQuality(D3DRMTEXTUREQUALITY quality)
|
|
{
|
|
return DD_OK;
|
|
}
|
|
|
|
D3DRMTEXTUREQUALITY Direct3DRMDevice2Impl::GetTextureQuality()
|
|
{
|
|
return D3DRMTEXTUREQUALITY::LINEAR;
|
|
}
|
|
|
|
HRESULT Direct3DRMDevice2Impl::SetRenderMode(D3DRMRENDERMODE mode)
|
|
{
|
|
return DD_OK;
|
|
}
|
|
|
|
D3DRMRENDERMODE Direct3DRMDevice2Impl::GetRenderMode()
|
|
{
|
|
return D3DRMRENDERMODE::BLENDEDTRANSPARENCY;
|
|
}
|
|
|
|
HRESULT Direct3DRMDevice2Impl::Update()
|
|
{
|
|
MINIWIN_NOT_IMPLEMENTED();
|
|
return DD_OK;
|
|
}
|
|
|
|
HRESULT Direct3DRMDevice2Impl::AddViewport(IDirect3DRMViewport* viewport)
|
|
{
|
|
return m_viewports->AddElement(viewport);
|
|
}
|
|
|
|
HRESULT Direct3DRMDevice2Impl::GetViewports(IDirect3DRMViewportArray** ppViewportArray)
|
|
{
|
|
m_viewports->AddRef();
|
|
*ppViewportArray = m_viewports;
|
|
return DD_OK;
|
|
}
|