feat(gx): add getter for device window

This commit is contained in:
fallenoak 2023-03-19 23:48:52 -05:00 committed by GitHub
parent bfbd7e57ad
commit acaa42019a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 17 additions and 0 deletions

View File

@ -106,6 +106,7 @@ class CGxDevice {
virtual void ICursorCreate(const CGxFormat& format);
virtual int32_t DeviceCreate(int32_t (*windowProc)(void* window, uint32_t message, uintptr_t wparam, intptr_t lparam), const CGxFormat&);
virtual int32_t DeviceSetFormat(const CGxFormat&);
virtual void* DeviceWindow() = 0;
virtual void DeviceWM(EGxWM wm, uintptr_t param1, uintptr_t param2) = 0;
virtual void CapsWindowSize(CRect&) = 0;
virtual void CapsWindowSizeInScreenCoords(CRect& dst) = 0;

View File

@ -46,6 +46,10 @@ EGxApi GxDevApi() {
return g_theGxDevicePtr->m_api;
}
void* GxDevWindow() {
return g_theGxDevicePtr->DeviceWindow();
}
int32_t GxMasterEnable(EGxMasterEnables state) {
return g_theGxDevicePtr->MasterEnable(state);
}

View File

@ -13,6 +13,8 @@ CGxDevice* GxDevCreate(EGxApi api, int32_t (*windowProc)(void* window, uint32_t
EGxApi GxDevApi(void);
void* GxDevWindow();
int32_t GxMasterEnable(EGxMasterEnables state);
#endif

View File

@ -487,6 +487,10 @@ int32_t CGxDeviceD3d::DeviceSetFormat(const CGxFormat& format) {
}
}
void* CGxDeviceD3d::DeviceWindow() {
return this->m_hwnd;
}
void CGxDeviceD3d::DeviceWM(EGxWM wm, uintptr_t param1, uintptr_t param2) {
switch (wm) {
case GxWM_Size: {

View File

@ -247,6 +247,7 @@ class CGxDeviceD3d : public CGxDevice {
virtual void IRsSendToHw(EGxRenderState which);
virtual int32_t DeviceCreate(int32_t (*windowProc)(void* window, uint32_t message, uintptr_t wparam, intptr_t lparam), const CGxFormat& format);
virtual int32_t DeviceSetFormat(const CGxFormat& format);
virtual void* DeviceWindow();
virtual void DeviceWM(EGxWM wm, uintptr_t param1, uintptr_t param2);
virtual void CapsWindowSize(CRect& dst);
virtual void CapsWindowSizeInScreenCoords(CRect& dst);

View File

@ -334,6 +334,10 @@ int32_t CGxDeviceGLL::DeviceSetFormat(const CGxFormat& format) {
return 1;
}
void* CGxDeviceGLL::DeviceWindow() {
return &this->m_glWindow;
}
void CGxDeviceGLL::Draw(CGxBatch* batch, int32_t indexed) {
if (!this->m_context) {
return;

View File

@ -31,6 +31,7 @@ class CGxDeviceGLL : public CGxDevice {
virtual void IRsSendToHw(EGxRenderState);
virtual int32_t DeviceCreate(int32_t (*windowProc)(void* window, uint32_t message, uintptr_t wparam, intptr_t lparam), const CGxFormat&);
virtual int32_t DeviceSetFormat(const CGxFormat&);
virtual void* DeviceWindow();
virtual void DeviceWM(EGxWM wm, uintptr_t param1, uintptr_t param2) {};
virtual void CapsWindowSize(CRect&);
virtual void CapsWindowSizeInScreenCoords(CRect& dst);