Implement CreateLightRGB()

This commit is contained in:
Anders Jenbo 2025-05-25 00:28:18 +02:00
parent 36243c165b
commit 38c24d18d0
3 changed files with 7 additions and 1 deletions

View File

@ -3,6 +3,7 @@
#include "miniwin_d3drmobject_p.h"
struct Direct3DRMLightImpl : public Direct3DRMObjectBase<IDirect3DRMLight> {
Direct3DRMLightImpl(float r, float g, float b);
HRESULT SetColorRGB(float r, float g, float b) override;
private:

View File

@ -232,7 +232,7 @@ struct Direct3DRMImpl : virtual public IDirect3DRM2 {
}
HRESULT CreateLightRGB(D3DRMLIGHTTYPE type, D3DVAL r, D3DVAL g, D3DVAL b, IDirect3DRMLight** outLight) override
{
*outLight = static_cast<IDirect3DRMLight*>(new Direct3DRMLightImpl);
*outLight = static_cast<IDirect3DRMLight*>(new Direct3DRMLightImpl(r, g, b));
return DD_OK;
}
HRESULT CreateFrame(IDirect3DRMFrame* parent, IDirect3DRMFrame2** outFrame) override

View File

@ -1,6 +1,11 @@
#include "miniwin_d3drmlight_p.h"
#include "miniwin_p.h"
Direct3DRMLightImpl::Direct3DRMLightImpl(float r, float g, float b)
{
SetColorRGB(r, g, b);
}
HRESULT Direct3DRMLightImpl::SetColorRGB(float r, float g, float b)
{
m_color = (0xFF << 24) | (static_cast<BYTE>(r * 255.0f) << 16) | (static_cast<BYTE>(g * 255.0f) << 8) |