mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-06-13 01:45:45 +00:00
Harmony port: review changes
This commit is contained in:
parent
af9601874e
commit
4a0d0685ee
4 changed files with 20 additions and 18 deletions
|
|
@ -15,13 +15,12 @@
|
|||
#include "SDL3/SDL_mutex.h"
|
||||
#include "../../video/ohos/SDL_ohoskeyboard.h"
|
||||
|
||||
OHNativeWindow *nativeWindow;
|
||||
OHNativeWindow *g_ohosNativeWindow;
|
||||
SDL_Mutex *g_ohosPageMutex = NULL;
|
||||
static OH_NativeXComponent_Callback callback;
|
||||
static OH_NativeXComponent_MouseEvent_Callback mouseCallback;
|
||||
SDL_WindowData windowData;
|
||||
SDL_VideoData videoData;
|
||||
struct
|
||||
static struct
|
||||
{
|
||||
napi_env env;
|
||||
napi_threadsafe_function func;
|
||||
|
|
@ -103,7 +102,7 @@ static napi_value sdlCallbackInit(napi_env env, napi_callback_info info)
|
|||
|
||||
static void OnSurfaceCreatedCB(OH_NativeXComponent *component, void *window)
|
||||
{
|
||||
nativeWindow = (OHNativeWindow *)window;
|
||||
g_ohosNativeWindow = (OHNativeWindow *)window;
|
||||
|
||||
uint64_t width;
|
||||
uint64_t height;
|
||||
|
|
@ -112,10 +111,8 @@ static void OnSurfaceCreatedCB(OH_NativeXComponent *component, void *window)
|
|||
OH_NativeXComponent_GetXComponentSize(component, window, &width, &height);
|
||||
OH_NativeXComponent_GetXComponentOffset(component, window, &offsetX, &offsetY);
|
||||
|
||||
SDL_Log("Native Window: %p", nativeWindow);
|
||||
|
||||
SDL_LockMutex(g_ohosPageMutex);
|
||||
windowData.native_window = nativeWindow;
|
||||
windowData.native_window = g_ohosNativeWindow;
|
||||
windowData.width = width;
|
||||
windowData.height = height;
|
||||
windowData.x = offsetX;
|
||||
|
|
@ -124,7 +121,7 @@ static void OnSurfaceCreatedCB(OH_NativeXComponent *component, void *window)
|
|||
}
|
||||
static void OnSurfaceChangedCB(OH_NativeXComponent *component, void *window)
|
||||
{
|
||||
nativeWindow = (OHNativeWindow *)window;
|
||||
g_ohosNativeWindow = (OHNativeWindow *)window;
|
||||
|
||||
uint64_t width;
|
||||
uint64_t height;
|
||||
|
|
@ -133,10 +130,8 @@ static void OnSurfaceChangedCB(OH_NativeXComponent *component, void *window)
|
|||
OH_NativeXComponent_GetXComponentSize(component, window, &width, &height);
|
||||
OH_NativeXComponent_GetXComponentOffset(component, window, &offsetX, &offsetY);
|
||||
|
||||
SDL_Log("Native Window: %p", nativeWindow);
|
||||
|
||||
SDL_LockMutex(g_ohosPageMutex);
|
||||
windowData.native_window = nativeWindow;
|
||||
windowData.native_window = g_ohosNativeWindow;
|
||||
windowData.width = width;
|
||||
windowData.height = height;
|
||||
windowData.x = offsetX;
|
||||
|
|
@ -184,12 +179,14 @@ static void onKeyEvent(OH_NativeXComponent *component, void *window)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO
|
||||
static void onNativeTouch(OH_NativeXComponent *component, void *window) {}
|
||||
static void onNativeMouse(OH_NativeXComponent *component, void *window) {}
|
||||
static void OnDispatchTouchEventCB(OH_NativeXComponent *component, void *window) {}
|
||||
void OnHoverEvent(OH_NativeXComponent *component, bool isHover) {}
|
||||
void OnFocusEvent(OH_NativeXComponent *component, void *window) {}
|
||||
void OnBlurEvent(OH_NativeXComponent *component, void *window) {}
|
||||
static void OnHoverEvent(OH_NativeXComponent *component, bool isHover) {}
|
||||
static void OnFocusEvent(OH_NativeXComponent *component, void *window) {}
|
||||
static void OnBlurEvent(OH_NativeXComponent *component, void *window) {}
|
||||
|
||||
static napi_value SDL_OHOS_NAPI_Init(napi_env env, napi_value exports)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,9 +6,8 @@
|
|||
#include <native_window/external_window.h>
|
||||
|
||||
extern SDL_Mutex *g_ohosPageMutex;
|
||||
extern OHNativeWindow *nativeWindow;
|
||||
extern OHNativeWindow *g_ohosNativeWindow;
|
||||
extern SDL_WindowData windowData;
|
||||
extern SDL_VideoData videoData;
|
||||
|
||||
typedef struct SDL_VideoData {
|
||||
SDL_Rect textRect;
|
||||
|
|
|
|||
|
|
@ -21,13 +21,19 @@ void OHOS_DeviceFree(SDL_VideoDevice *device)
|
|||
static SDL_VideoDevice *OHOS_CreateDevice(void)
|
||||
{
|
||||
SDL_VideoDevice *device;
|
||||
SDL_VideoData *data;
|
||||
|
||||
device = (SDL_VideoDevice *)SDL_calloc(1, sizeof(SDL_VideoDevice));
|
||||
if (!device) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
device->internal = &videoData;
|
||||
data = (SDL_VideoData *)SDL_calloc(1, sizeof(SDL_VideoData));
|
||||
if (!data) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
device->internal = data;
|
||||
device->free = OHOS_DeviceFree;
|
||||
|
||||
device->VideoInit = OHOS_VideoInit;
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ bool OHOS_Vulkan_CreateSurface(SDL_VideoDevice *_this,
|
|||
createInfo.sType = VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS;
|
||||
createInfo.pNext = NULL;
|
||||
createInfo.flags = 0;
|
||||
createInfo.window = nativeWindow;
|
||||
createInfo.window = g_ohosNativeWindow;
|
||||
result = vkCreateSurfaceOHOS(instance, &createInfo, NULL, surface);
|
||||
if (result != VK_SUCCESS) {
|
||||
SDL_SetError("vkCreateSurfaceOHOS failed: %d", result);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue