mirror of
https://github.com/giongto35/cloud-game.git
synced 2026-01-23 02:34:42 +00:00
Move some RETRO_ENVIRONMENT vars into C
This commit is contained in:
parent
600243c87d
commit
4aaeda3fbb
3 changed files with 33 additions and 32 deletions
|
|
@ -4,6 +4,8 @@
|
|||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#define RETRO_ENVIRONMENT_GET_CLEAR_ALL_THREAD_WAITS_CB (3 | 0x800000)
|
||||
|
||||
int initialized = 0;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -127,16 +129,41 @@ static bool clear_all_thread_waits_cb(unsigned v, void *data) {
|
|||
return true;
|
||||
}
|
||||
|
||||
void bridge_clear_all_thread_waits_cb(void *data) {
|
||||
*(retro_environment_t *)data = clear_all_thread_waits_cb;
|
||||
}
|
||||
|
||||
void bridge_retro_keyboard_callback(void *cb, bool down, unsigned keycode, uint32_t character, uint16_t keyModifiers) {
|
||||
(*(retro_keyboard_event_t *) cb)(down, keycode, character, keyModifiers);
|
||||
}
|
||||
|
||||
bool core_environment_cgo(unsigned cmd, void *data) {
|
||||
bool coreEnvironment(unsigned, void *);
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE:
|
||||
return false;
|
||||
break;
|
||||
case RETRO_ENVIRONMENT_GET_AUDIO_VIDEO_ENABLE:
|
||||
return false;
|
||||
break;
|
||||
case RETRO_ENVIRONMENT_GET_CLEAR_ALL_THREAD_WAITS_CB:
|
||||
*(retro_environment_t *)data = clear_all_thread_waits_cb;
|
||||
return true;
|
||||
break;
|
||||
case RETRO_ENVIRONMENT_GET_INPUT_MAX_USERS:
|
||||
*(unsigned *)data = 4;
|
||||
core_log_cgo(RETRO_LOG_DEBUG, "Set max users: %d\n", 4);
|
||||
return true;
|
||||
break;
|
||||
case RETRO_ENVIRONMENT_GET_INPUT_BITMASKS:
|
||||
return false;
|
||||
case RETRO_ENVIRONMENT_SHUTDOWN:
|
||||
return false;
|
||||
break;
|
||||
case RETRO_ENVIRONMENT_GET_SAVESTATE_CONTEXT:
|
||||
if (data != NULL) *(int *)data = RETRO_SAVESTATE_CONTEXT_NORMAL;
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
|
||||
return coreEnvironment(cmd, data);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,8 +23,6 @@ import (
|
|||
#include "libretro.h"
|
||||
#include "nanoarch.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
#define RETRO_ENVIRONMENT_GET_CLEAR_ALL_THREAD_WAITS_CB (3 | 0x800000)
|
||||
*/
|
||||
import "C"
|
||||
|
||||
|
|
@ -771,13 +769,8 @@ func coreGetProcAddress(sym *C.char) C.retro_proc_address_t {
|
|||
|
||||
//export coreEnvironment
|
||||
func coreEnvironment(cmd C.unsigned, data unsafe.Pointer) C.bool {
|
||||
// spammy
|
||||
switch cmd {
|
||||
case C.RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE:
|
||||
return false
|
||||
case C.RETRO_ENVIRONMENT_GET_AUDIO_VIDEO_ENABLE:
|
||||
return false
|
||||
}
|
||||
|
||||
// see core_environment_cgo
|
||||
|
||||
switch cmd {
|
||||
case C.RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO:
|
||||
|
|
@ -829,9 +822,6 @@ func coreEnvironment(cmd C.unsigned, data unsafe.Pointer) C.bool {
|
|||
return true
|
||||
}
|
||||
return false
|
||||
case C.RETRO_ENVIRONMENT_SHUTDOWN:
|
||||
//window.SetShouldClose(true)
|
||||
return false
|
||||
case C.RETRO_ENVIRONMENT_GET_VARIABLE:
|
||||
if Nan0.options == nil {
|
||||
return false
|
||||
|
|
@ -884,25 +874,10 @@ func coreEnvironment(cmd C.unsigned, data unsafe.Pointer) C.bool {
|
|||
//Nan0.log.Debug().Msgf("%v", cInfo.String())
|
||||
}
|
||||
return true
|
||||
case C.RETRO_ENVIRONMENT_GET_INPUT_MAX_USERS:
|
||||
*(*C.unsigned)(data) = C.unsigned(4)
|
||||
Nan0.log.Debug().Msgf("Set max users: %v", 4)
|
||||
return true
|
||||
case C.RETRO_ENVIRONMENT_SET_KEYBOARD_CALLBACK:
|
||||
Nan0.log.Debug().Msgf("Keyboard event callback was set")
|
||||
Nan0.keyboardCb = (*C.struct_retro_keyboard_callback)(data)
|
||||
return true
|
||||
case C.RETRO_ENVIRONMENT_GET_INPUT_BITMASKS:
|
||||
Nan0.log.Debug().Msgf("Set input bitmasks: false")
|
||||
return false
|
||||
case C.RETRO_ENVIRONMENT_GET_CLEAR_ALL_THREAD_WAITS_CB:
|
||||
C.bridge_clear_all_thread_waits_cb(data)
|
||||
return true
|
||||
case C.RETRO_ENVIRONMENT_GET_SAVESTATE_CONTEXT:
|
||||
if ctx := (*C.int)(data); ctx != nil {
|
||||
*ctx = C.RETRO_SAVESTATE_CONTEXT_NORMAL
|
||||
}
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ void bridge_retro_set_controller_port_device(void *f, unsigned port, unsigned de
|
|||
void bridge_retro_set_input_poll(void *f, void *callback);
|
||||
void bridge_retro_set_input_state(void *f, void *callback);
|
||||
void bridge_retro_set_video_refresh(void *f, void *callback);
|
||||
void bridge_clear_all_thread_waits_cb(void *f);
|
||||
void bridge_retro_keyboard_callback(void *f, bool down, unsigned keycode, uint32_t character, uint16_t keyModifiers);
|
||||
|
||||
bool core_environment_cgo(unsigned cmd, void *data);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue