diff --git a/miniwin/miniwin/src/include/miniwin_d3drmlight_p.h b/miniwin/miniwin/src/include/miniwin_d3drmlight_p.h index 7ed00d5b..5be46945 100644 --- a/miniwin/miniwin/src/include/miniwin_d3drmlight_p.h +++ b/miniwin/miniwin/src/include/miniwin_d3drmlight_p.h @@ -3,6 +3,7 @@ #include "miniwin_d3drmobject_p.h" struct Direct3DRMLightImpl : public Direct3DRMObjectBase { + Direct3DRMLightImpl(float r, float g, float b); HRESULT SetColorRGB(float r, float g, float b) override; private: diff --git a/miniwin/miniwin/src/miniwin_d3drm.cpp b/miniwin/miniwin/src/miniwin_d3drm.cpp index 3bf3ac9d..af1330e2 100644 --- a/miniwin/miniwin/src/miniwin_d3drm.cpp +++ b/miniwin/miniwin/src/miniwin_d3drm.cpp @@ -236,8 +236,7 @@ struct Direct3DRMImpl : virtual public IDirect3DRM2 { } HRESULT CreateLightRGB(D3DRMLIGHTTYPE type, D3DVAL r, D3DVAL g, D3DVAL b, IDirect3DRMLight** outLight) override { - MINIWIN_NOT_IMPLEMENTED(); - *outLight = static_cast(new Direct3DRMLightImpl); + *outLight = static_cast(new Direct3DRMLightImpl(r, g, b)); return DD_OK; } HRESULT CreateFrame(IDirect3DRMFrame* parent, IDirect3DRMFrame2** outFrame) override diff --git a/miniwin/miniwin/src/miniwin_d3drmlight.cpp b/miniwin/miniwin/src/miniwin_d3drmlight.cpp index b764dd59..932351bd 100644 --- a/miniwin/miniwin/src/miniwin_d3drmlight.cpp +++ b/miniwin/miniwin/src/miniwin_d3drmlight.cpp @@ -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(r * 255.0f) << 16) | (static_cast(g * 255.0f) << 8) |