mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-11 18:41:14 +00:00
Implement GetGroupMaterial() (#175)
This commit is contained in:
parent
48958c304e
commit
cea10248aa
@ -195,6 +195,7 @@ struct IDirect3DRMMesh : public IDirect3DRMVisual {
|
|||||||
virtual HRESULT SetVertices(DWORD groupIndex, int offset, int count, D3DRMVERTEX* vertices) = 0;
|
virtual HRESULT SetVertices(DWORD groupIndex, int offset, int count, D3DRMVERTEX* vertices) = 0;
|
||||||
virtual HRESULT GetGroupTexture(DWORD groupIndex, LPDIRECT3DRMTEXTURE* texture) = 0;
|
virtual HRESULT GetGroupTexture(DWORD groupIndex, LPDIRECT3DRMTEXTURE* texture) = 0;
|
||||||
virtual D3DRMMAPPING GetGroupMapping(DWORD groupIndex) = 0;
|
virtual D3DRMMAPPING GetGroupMapping(DWORD groupIndex) = 0;
|
||||||
|
virtual HRESULT GetGroupMaterial(DWORD groupIndex, LPDIRECT3DRMMATERIAL* material) = 0;
|
||||||
virtual D3DRMRENDERQUALITY GetGroupQuality(DWORD groupIndex) = 0;
|
virtual D3DRMRENDERQUALITY GetGroupQuality(DWORD groupIndex) = 0;
|
||||||
virtual D3DCOLOR GetGroupColor(D3DRMGROUPINDEX index) = 0;
|
virtual D3DCOLOR GetGroupColor(D3DRMGROUPINDEX index) = 0;
|
||||||
virtual HRESULT GetVertices(DWORD groupIndex, int startIndex, int count, D3DRMVERTEX* vertices) = 0;
|
virtual HRESULT GetVertices(DWORD groupIndex, int startIndex, int count, D3DRMVERTEX* vertices) = 0;
|
||||||
|
|||||||
@ -83,6 +83,7 @@ struct Direct3DRMMesh_SDL3GPUImpl : public Direct3DRMObjectBase_SDL3GPUImpl<IDir
|
|||||||
HRESULT SetGroupMaterial(DWORD groupIndex, IDirect3DRMMaterial* material) override;
|
HRESULT SetGroupMaterial(DWORD groupIndex, IDirect3DRMMaterial* material) override;
|
||||||
HRESULT SetGroupTexture(DWORD groupIndex, IDirect3DRMTexture* texture) override;
|
HRESULT SetGroupTexture(DWORD groupIndex, IDirect3DRMTexture* texture) override;
|
||||||
HRESULT GetGroupTexture(DWORD groupIndex, LPDIRECT3DRMTEXTURE* texture) override;
|
HRESULT GetGroupTexture(DWORD groupIndex, LPDIRECT3DRMTEXTURE* texture) override;
|
||||||
|
HRESULT GetGroupMaterial(DWORD groupIndex, LPDIRECT3DRMMATERIAL* material) override;
|
||||||
HRESULT SetGroupMapping(D3DRMGROUPINDEX groupIndex, D3DRMMAPPING mapping) override;
|
HRESULT SetGroupMapping(D3DRMGROUPINDEX groupIndex, D3DRMMAPPING mapping) override;
|
||||||
D3DRMMAPPING GetGroupMapping(DWORD groupIndex) override;
|
D3DRMMAPPING GetGroupMapping(DWORD groupIndex) override;
|
||||||
HRESULT SetGroupQuality(DWORD groupIndex, D3DRMRENDERQUALITY quality) override;
|
HRESULT SetGroupQuality(DWORD groupIndex, D3DRMRENDERQUALITY quality) override;
|
||||||
|
|||||||
@ -158,6 +158,22 @@ HRESULT Direct3DRMMesh_SDL3GPUImpl::SetGroupTexture(DWORD groupIndex, IDirect3DR
|
|||||||
return DD_OK;
|
return DD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HRESULT Direct3DRMMesh_SDL3GPUImpl::GetGroupMaterial(DWORD groupIndex, LPDIRECT3DRMMATERIAL* material)
|
||||||
|
{
|
||||||
|
if (groupIndex >= m_groups.size()) {
|
||||||
|
return DDERR_GENERIC;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto& group = m_groups[groupIndex];
|
||||||
|
if (!group.material) {
|
||||||
|
return DDERR_GENERIC;
|
||||||
|
}
|
||||||
|
|
||||||
|
group.material->AddRef();
|
||||||
|
*material = group.material;
|
||||||
|
return DD_OK;
|
||||||
|
}
|
||||||
|
|
||||||
HRESULT Direct3DRMMesh_SDL3GPUImpl::GetGroupTexture(DWORD groupIndex, LPDIRECT3DRMTEXTURE* texture)
|
HRESULT Direct3DRMMesh_SDL3GPUImpl::GetGroupTexture(DWORD groupIndex, LPDIRECT3DRMTEXTURE* texture)
|
||||||
{
|
{
|
||||||
if (groupIndex >= m_groups.size()) {
|
if (groupIndex >= m_groups.size()) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user