more to buffers
This commit is contained in:
parent
aacbc4e675
commit
243c0158c1
|
@ -16,6 +16,8 @@ struct VideoConfigInternal {
|
|||
SceVideoOutVblankStatus m_vblank_status;
|
||||
std::vector<HLE::Libs::LibKernel::EventQueues::SceKernelEqueue> m_flip_evtEq;
|
||||
int m_flip_rate = 0;
|
||||
|
||||
int buffers_registration_index = 0;
|
||||
};
|
||||
|
||||
class FlipQueue {
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
#include "Objects/video_out_ctx.h"
|
||||
#include "Util/Singleton.h"
|
||||
#include <emulator.h>
|
||||
|
||||
namespace HLE::Libs::Graphics::VideoOut {
|
||||
|
||||
|
@ -155,7 +156,16 @@ s32 PS4_SYSV_ABI sceVideoOutRegisterBuffers(s32 handle, s32 startIndex, void* co
|
|||
LOG_INFO_IF(log_file_videoout, "height = {}\n", attribute->height);
|
||||
LOG_INFO_IF(log_file_videoout, "pitchInPixel = {}\n", attribute->pitchInPixel);
|
||||
LOG_INFO_IF(log_file_videoout, "option = {}\n", attribute->option);
|
||||
return 0;
|
||||
|
||||
int registration_index = ctx->buffers_registration_index++;
|
||||
|
||||
Emulator::checkAndWaitForGraphicsInit();
|
||||
|
||||
//try to calculate buffer size
|
||||
u64 buffer_size = 1280 * 720 * 4; //TODO hardcore value should be redone
|
||||
u64 buffer_pitch = attribute->pitchInPixel;
|
||||
|
||||
return registration_index;
|
||||
}
|
||||
s32 PS4_SYSV_ABI sceVideoOutSetFlipRate(s32 handle, s32 rate) {
|
||||
PRINT_FUNCTION_NAME();
|
||||
|
|
|
@ -14,6 +14,13 @@ void emuInit(u32 width, u32 height) {
|
|||
g_window_ctx->m_graphic_ctx.screen_height = height;
|
||||
}
|
||||
|
||||
void checkAndWaitForGraphicsInit() {
|
||||
Lib::LockMutexGuard lock(g_window_ctx->m_mutex);
|
||||
|
||||
while (!g_window_ctx->m_is_graphic_initialized) {
|
||||
g_window_ctx->m_graphic_initialized_cond.WaitCondVar(&g_window_ctx->m_mutex);
|
||||
}
|
||||
}
|
||||
static void CreateSdlWindow(WindowCtx* ctx) {
|
||||
int width = static_cast<int>(ctx->m_graphic_ctx.screen_width);
|
||||
int height = static_cast<int>(ctx->m_graphic_ctx.screen_height);
|
||||
|
@ -34,7 +41,6 @@ static void CreateSdlWindow(WindowCtx* ctx) {
|
|||
}
|
||||
|
||||
SDL_SetWindowResizable(ctx->m_window, SDL_FALSE); // we don't support resizable atm
|
||||
SDL_ShowWindow(g_window_ctx->m_window); // TODO should be removed just left it over to make it fancy :D
|
||||
}
|
||||
void emuRun() {
|
||||
g_window_ctx->m_mutex.LockMutex();
|
||||
|
|
|
@ -24,4 +24,5 @@ struct EmuPrivate {
|
|||
};
|
||||
void emuInit(u32 width, u32 height);
|
||||
void emuRun();
|
||||
void checkAndWaitForGraphicsInit();
|
||||
} // namespace Emulator
|
Loading…
Reference in New Issue