Implement Direct3DRMPickedArray constructor (#181)

This commit is contained in:
Anders Jenbo 2025-05-26 16:39:43 +02:00 committed by GitHub
parent e1cddc5c0e
commit 4e3cf45aba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 5 deletions

View File

@ -252,11 +252,7 @@ struct IDirect3DRMFrameArray : public IDirect3DRMArray {
struct IDirect3DRMFrame2 : public IDirect3DRMFrame {};
typedef IDirect3DRMFrame2* LPDIRECT3DRMFRAME2;
struct D3DRMPICKDESC {
IDirect3DRMVisual* visual;
IDirect3DRMFrame* frame;
float dist;
};
struct D3DRMPICKDESC {};
struct IDirect3DRMPickedArray : public IDirect3DRMArray {
virtual HRESULT GetPick(

View File

@ -21,6 +21,20 @@ struct PickRecord {
};
struct Direct3DRMPickedArray_SDL3GPUImpl : public IDirect3DRMPickedArray {
Direct3DRMPickedArray_SDL3GPUImpl(const PickRecord* inputPicks, size_t count)
{
picks.reserve(count);
for (size_t i = 0; i < count; ++i) {
const PickRecord& pick = inputPicks[i];
if (pick.visual) {
pick.visual->AddRef();
}
if (pick.frameArray) {
pick.frameArray->AddRef();
}
picks.push_back(pick);
}
}
~Direct3DRMPickedArray_SDL3GPUImpl() override
{
for (PickRecord& pick : picks) {