Fix initilization and overlapping memcpu (#101)

This commit is contained in:
Anders Jenbo 2025-05-17 04:07:05 +02:00 committed by GitHub
parent 5ae47c2b56
commit 00a68c44c6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 10 additions and 6 deletions

View File

@ -140,7 +140,7 @@ MxU32 ReadData(MxU8* p_buffer, MxU32 p_size)
} }
data2 = MxDSChunk::End(data2); data2 = MxDSChunk::End(data2);
memcpy(data2, data3, MxDSChunk::Size(data3)); memmove(data2, data3, MxDSChunk::Size(data3));
if (*MxStreamChunk::IntoObjectId(data2) == id && if (*MxStreamChunk::IntoObjectId(data2) == id &&
(*MxStreamChunk::IntoFlags(data2) & DS_CHUNK_END_OF_STREAM)) { (*MxStreamChunk::IntoFlags(data2) & DS_CHUNK_END_OF_STREAM)) {

View File

@ -1,5 +1,7 @@
#include "miniwin.h" #include "miniwin.h"
#include "miniwin_p.h"
#include <SDL3/SDL.h> #include <SDL3/SDL.h>
#include <vector> #include <vector>
@ -21,6 +23,7 @@ ULONG IUnknown::Release()
HRESULT IUnknown::QueryInterface(const GUID& riid, void** ppvObject) HRESULT IUnknown::QueryInterface(const GUID& riid, void** ppvObject)
{ {
SDL_LogError(LOG_CATEGORY_MINIWIN, "IUnknown does not implement guid");
return E_NOINTERFACE; return E_NOINTERFACE;
} }

View File

@ -183,7 +183,7 @@ struct Direct3DRMObjectBase : public T {
private: private:
std::vector<std::pair<D3DRMOBJECTCALLBACK, void*>> m_callbacks; std::vector<std::pair<D3DRMOBJECTCALLBACK, void*>> m_callbacks;
LPD3DRM_APPDATA m_appData = NULL; LPD3DRM_APPDATA m_appData = nullptr;
char* m_name = nullptr; char* m_name = nullptr;
}; };
@ -206,7 +206,8 @@ struct Direct3DRMMeshImpl : public Direct3DRMObjectBase<IDirect3DRMMesh> {
HRESULT AddGroup(int vertexCount, int faceCount, int vertexPerFace, void* faceBuffer, D3DRMGROUPINDEX* groupIndex) HRESULT AddGroup(int vertexCount, int faceCount, int vertexPerFace, void* faceBuffer, D3DRMGROUPINDEX* groupIndex)
override override
{ {
return DD_OK; assert(false && "Unimplemented");
return DDERR_GENERIC;
} }
HRESULT GetGroup( HRESULT GetGroup(
int groupIndex, int groupIndex,
@ -244,7 +245,7 @@ struct Direct3DRMMeshImpl : public Direct3DRMObjectBase<IDirect3DRMMesh> {
HRESULT GetVertices(int groupIndex, int startIndex, int count, D3DRMVERTEX* vertices) override { return DD_OK; } HRESULT GetVertices(int groupIndex, int startIndex, int count, D3DRMVERTEX* vertices) override { return DD_OK; }
private: private:
IDirect3DRMTexture* m_groupTexture; IDirect3DRMTexture* m_groupTexture = nullptr;
}; };
struct Direct3DRMTextureImpl : public Direct3DRMObjectBase<IDirect3DRMTexture2> { struct Direct3DRMTextureImpl : public Direct3DRMObjectBase<IDirect3DRMTexture2> {
@ -375,7 +376,7 @@ private:
IDirect3DRMFrameArray* m_children; IDirect3DRMFrameArray* m_children;
IDirect3DRMLightArray* m_lights; IDirect3DRMLightArray* m_lights;
IDirect3DRMVisualArray* m_visuals; IDirect3DRMVisualArray* m_visuals;
IDirect3DRMTexture* m_texture; IDirect3DRMTexture* m_texture = nullptr;
}; };
struct Direct3DRMViewportImpl : public Direct3DRMObjectBase<IDirect3DRMViewport> { struct Direct3DRMViewportImpl : public Direct3DRMObjectBase<IDirect3DRMViewport> {
@ -412,7 +413,7 @@ struct Direct3DRMViewportImpl : public Direct3DRMObjectBase<IDirect3DRMViewport>
HRESULT Pick(float x, float y, LPDIRECT3DRMPICKEDARRAY* pickedArray) override { return DD_OK; } HRESULT Pick(float x, float y, LPDIRECT3DRMPICKEDARRAY* pickedArray) override { return DD_OK; }
private: private:
IDirect3DRMFrame* m_camera; IDirect3DRMFrame* m_camera = nullptr;
}; };
struct Direct3DRMLightImpl : public Direct3DRMObjectBase<IDirect3DRMLight> { struct Direct3DRMLightImpl : public Direct3DRMObjectBase<IDirect3DRMLight> {