mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2025-04-18 02:52:47 +03:00
feat(gx): implement CGxDevice::BufData
This commit is contained in:
parent
5ccf980c23
commit
da23578002
@ -194,6 +194,11 @@ int32_t CGxDevice::BufUnlock(CGxBuf* buf, uint32_t size) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CGxDevice::BufData(CGxBuf* buf, const void* data, size_t size, uintptr_t offset) {
|
||||||
|
buf->unk1E = 1;
|
||||||
|
buf->unk1F = 0;
|
||||||
|
}
|
||||||
|
|
||||||
const CGxCaps& CGxDevice::Caps() const {
|
const CGxCaps& CGxDevice::Caps() const {
|
||||||
return this->m_caps;
|
return this->m_caps;
|
||||||
}
|
}
|
||||||
|
@ -120,6 +120,7 @@ class CGxDevice {
|
|||||||
virtual void PoolSizeSet(CGxPool*, uint32_t) = 0;
|
virtual void PoolSizeSet(CGxPool*, uint32_t) = 0;
|
||||||
virtual char* BufLock(CGxBuf*);
|
virtual char* BufLock(CGxBuf*);
|
||||||
virtual int32_t BufUnlock(CGxBuf*, uint32_t);
|
virtual int32_t BufUnlock(CGxBuf*, uint32_t);
|
||||||
|
virtual void BufData(CGxBuf* buf, const void* data, size_t size, uintptr_t offset);
|
||||||
virtual int32_t TexCreate(EGxTexTarget, uint32_t, uint32_t, uint32_t, EGxTexFormat, EGxTexFormat, CGxTexFlags, void*, void (*)(EGxTexCommand, uint32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t&, const void*&), const char*, CGxTex*&);
|
virtual int32_t TexCreate(EGxTexTarget, uint32_t, uint32_t, uint32_t, EGxTexFormat, EGxTexFormat, CGxTexFlags, void*, void (*)(EGxTexCommand, uint32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t&, const void*&), const char*, CGxTex*&);
|
||||||
virtual void TexDestroy(CGxTex* texId);
|
virtual void TexDestroy(CGxTex* texId);
|
||||||
virtual void ShaderCreate(CGxShader*[], EGxShTarget, const char*, const char*, int32_t);
|
virtual void ShaderCreate(CGxShader*[], EGxShTarget, const char*, const char*, int32_t);
|
||||||
|
@ -394,6 +394,14 @@ int32_t CGxDeviceD3d::BufUnlock(CGxBuf* buf, uint32_t size) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CGxDeviceD3d::BufData(CGxBuf* buf, const void* data, size_t size, uintptr_t offset) {
|
||||||
|
CGxDevice::BufData(buf, data, size, offset);
|
||||||
|
|
||||||
|
auto bufData = this->IBufLock(buf);
|
||||||
|
memcpy(&bufData[offset], data, size);
|
||||||
|
this->IBufUnlock(buf);
|
||||||
|
}
|
||||||
|
|
||||||
void CGxDeviceD3d::CapsWindowSize(CRect& dst) {
|
void CGxDeviceD3d::CapsWindowSize(CRect& dst) {
|
||||||
dst = this->DeviceCurWindow();
|
dst = this->DeviceCurWindow();
|
||||||
}
|
}
|
||||||
|
@ -258,6 +258,7 @@ class CGxDeviceD3d : public CGxDevice {
|
|||||||
virtual void PoolSizeSet(CGxPool* pool, uint32_t size);
|
virtual void PoolSizeSet(CGxPool* pool, uint32_t size);
|
||||||
virtual char* BufLock(CGxBuf* buf);
|
virtual char* BufLock(CGxBuf* buf);
|
||||||
virtual int32_t BufUnlock(CGxBuf* buf, uint32_t size);
|
virtual int32_t BufUnlock(CGxBuf* buf, uint32_t size);
|
||||||
|
virtual void BufData(CGxBuf* buf, const void* data, size_t size, uintptr_t offset);
|
||||||
virtual void IShaderCreate(CGxShader* shader);
|
virtual void IShaderCreate(CGxShader* shader);
|
||||||
virtual void ShaderCreate(CGxShader* shaders[], EGxShTarget target, const char* a4, const char* a5, int32_t permutations);
|
virtual void ShaderCreate(CGxShader* shaders[], EGxShTarget target, const char* a4, const char* a5, int32_t permutations);
|
||||||
virtual int32_t StereoEnabled();
|
virtual int32_t StereoEnabled();
|
||||||
|
@ -117,6 +117,14 @@ int32_t CGxDeviceGLL::BufUnlock(CGxBuf* buf, uint32_t size) {
|
|||||||
return this->IBufUnlock(buf);
|
return this->IBufUnlock(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CGxDeviceGLL::BufData(CGxBuf* buf, const void* data, size_t size, uintptr_t offset) {
|
||||||
|
CGxDevice::BufData(buf, data, size, offset);
|
||||||
|
|
||||||
|
auto bufData = this->IBufLock(buf);
|
||||||
|
memcpy(&bufData[offset], data, size);
|
||||||
|
this->IBufUnlock(buf);
|
||||||
|
}
|
||||||
|
|
||||||
void CGxDeviceGLL::CapsWindowSize(CRect& rect) {
|
void CGxDeviceGLL::CapsWindowSize(CRect& rect) {
|
||||||
CRect windowRect = this->DeviceCurWindow();
|
CRect windowRect = this->DeviceCurWindow();
|
||||||
|
|
||||||
|
@ -43,6 +43,7 @@ class CGxDeviceGLL : public CGxDevice {
|
|||||||
virtual void PoolSizeSet(CGxPool*, uint32_t);
|
virtual void PoolSizeSet(CGxPool*, uint32_t);
|
||||||
virtual char* BufLock(CGxBuf*);
|
virtual char* BufLock(CGxBuf*);
|
||||||
virtual int32_t BufUnlock(CGxBuf*, uint32_t);
|
virtual int32_t BufUnlock(CGxBuf*, uint32_t);
|
||||||
|
virtual void BufData(CGxBuf* buf, const void* data, size_t size, uintptr_t offset);
|
||||||
virtual void TexDestroy(CGxTex* texId);
|
virtual void TexDestroy(CGxTex* texId);
|
||||||
virtual void IShaderCreate(CGxShader*);
|
virtual void IShaderCreate(CGxShader*);
|
||||||
virtual void ShaderCreate(CGxShader*[], EGxShTarget, const char*, const char*, int32_t);
|
virtual void ShaderCreate(CGxShader*[], EGxShTarget, const char*, const char*, int32_t);
|
||||||
|
Loading…
Reference in New Issue
Block a user