mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-13 01:26:50 -04:00
156 lines
5.3 KiB
C
156 lines
5.3 KiB
C
#include "Core.h"
|
|
#if defined CC_BUILD_PS4
|
|
#include "Window.h"
|
|
#include "Platform.h"
|
|
#include "Input.h"
|
|
#include "Event.h"
|
|
#include "Graphics.h"
|
|
#include "String.h"
|
|
#include "Funcs.h"
|
|
#include "Bitmap.h"
|
|
#include "Errors.h"
|
|
#include "ExtMath.h"
|
|
#include "Logger.h"
|
|
#include "VirtualKeyboard.h"
|
|
#include <VideoOut.h>
|
|
|
|
static cc_bool launcherMode;
|
|
|
|
struct _DisplayData DisplayInfo;
|
|
struct cc_window WindowInfo;
|
|
|
|
void Window_PreInit(void) {
|
|
Platform_LogConst("initing 1..");
|
|
}
|
|
|
|
void Window_Init(void) {
|
|
OrbisVideoOutResolutionStatus res;
|
|
int handle = sceVideoOutOpen(ORBIS_VIDEO_USER_MAIN, ORBIS_VIDEO_OUT_BUS_MAIN, 0, 0);
|
|
sceVideoOutGetResolutionStatus(handle, &res);
|
|
|
|
DisplayInfo.Width = res.width;
|
|
DisplayInfo.Height = res.height;
|
|
DisplayInfo.ScaleX = 1;
|
|
DisplayInfo.ScaleY = 1;
|
|
|
|
Window_Main.Width = res.width;
|
|
Window_Main.Height = res.height;
|
|
Window_Main.Focused = true;
|
|
|
|
Window_Main.Exists = true;
|
|
Window_Main.UIScaleX = DEFAULT_UI_SCALE_X;
|
|
Window_Main.UIScaleY = DEFAULT_UI_SCALE_Y;
|
|
|
|
DisplayInfo.ContentOffsetX = 20;
|
|
DisplayInfo.ContentOffsetY = 20;
|
|
Window_Main.SoftKeyboard = SOFT_KEYBOARD_VIRTUAL;
|
|
}
|
|
|
|
void Window_Free(void) { }
|
|
|
|
void Window_Create2D(int width, int height) {
|
|
launcherMode = true;
|
|
Gfx_Create(); // launcher also uses RSX to draw
|
|
}
|
|
|
|
void Window_Create3D(int width, int height) {
|
|
launcherMode = false;
|
|
}
|
|
|
|
void Window_Destroy(void) { }
|
|
|
|
void Window_SetTitle(const cc_string* title) { }
|
|
void Clipboard_GetText(cc_string* value) { } // TODO sceClipboardGetText
|
|
void Clipboard_SetText(const cc_string* value) { } // TODO sceClipboardSetText
|
|
|
|
int Window_GetWindowState(void) { return WINDOW_STATE_FULLSCREEN; }
|
|
cc_result Window_EnterFullscreen(void) { return 0; }
|
|
cc_result Window_ExitFullscreen(void) { return 0; }
|
|
int Window_IsObscured(void) { return 0; }
|
|
|
|
void Window_Show(void) { }
|
|
void Window_SetSize(int width, int height) { }
|
|
|
|
void Window_RequestClose(void) {
|
|
Event_RaiseVoid(&WindowEvents.Closing);
|
|
}
|
|
|
|
|
|
/*########################################################################################################################*
|
|
*----------------------------------------------------Input processing-----------------------------------------------------*
|
|
*#########################################################################################################################*/
|
|
void Window_ProcessEvents(float delta) {
|
|
}
|
|
|
|
void Cursor_SetPosition(int x, int y) { } // Makes no sense for PS Vita
|
|
|
|
void Window_EnableRawMouse(void) { Input.RawMode = true; }
|
|
void Window_UpdateRawMouse(void) { }
|
|
void Window_DisableRawMouse(void) { Input.RawMode = false; }
|
|
|
|
|
|
/*########################################################################################################################*
|
|
*-------------------------------------------------------Gamepads----------------------------------------------------------*
|
|
*#########################################################################################################################*/
|
|
void Gamepads_Init(void) {
|
|
Input.Sources |= INPUT_SOURCE_GAMEPAD;
|
|
}
|
|
|
|
void Gamepads_Process(float delta) {
|
|
}
|
|
|
|
|
|
/*########################################################################################################################*
|
|
*------------------------------------------------------Framebuffer--------------------------------------------------------*
|
|
*#########################################################################################################################*/
|
|
void Window_AllocFramebuffer(struct Bitmap* bmp, int width, int height) {
|
|
bmp->scan0 = Mem_Alloc(width * height, 4, "bitmap");
|
|
bmp->width = width;
|
|
bmp->height = height;
|
|
}
|
|
|
|
void Window_DrawFramebuffer(Rect2D r, struct Bitmap* bmp) {
|
|
// TODO test
|
|
}
|
|
|
|
void Window_FreeFramebuffer(struct Bitmap* bmp) {
|
|
Mem_Free(bmp->scan0);
|
|
}
|
|
|
|
|
|
/*########################################################################################################################*
|
|
*------------------------------------------------------Soft keyboard------------------------------------------------------*
|
|
*#########################################################################################################################*/
|
|
void OnscreenKeyboard_Open(struct OpenKeyboardArgs* args) {
|
|
if (Input.Sources & INPUT_SOURCE_NORMAL) return;
|
|
|
|
VirtualKeyboard_Open(args, launcherMode);
|
|
}
|
|
|
|
void OnscreenKeyboard_SetText(const cc_string* text) {
|
|
VirtualKeyboard_SetText(text);
|
|
}
|
|
|
|
void OnscreenKeyboard_Close(void) {
|
|
VirtualKeyboard_Close();
|
|
}
|
|
|
|
|
|
/*########################################################################################################################*
|
|
*-------------------------------------------------------Misc/Other--------------------------------------------------------*
|
|
*#########################################################################################################################*/
|
|
void Window_ShowDialog(const char* title, const char* msg) {
|
|
/* TODO implement */
|
|
Platform_LogConst(title);
|
|
Platform_LogConst(msg);
|
|
}
|
|
|
|
cc_result Window_OpenFileDialog(const struct OpenFileDialogArgs* args) {
|
|
return ERR_NOT_SUPPORTED;
|
|
}
|
|
|
|
cc_result Window_SaveFileDialog(const struct SaveFileDialogArgs* args) {
|
|
return ERR_NOT_SUPPORTED;
|
|
}
|
|
#endif
|