more refactoring

This commit is contained in:
2025-12-30 19:05:02 +01:00
parent ce19309e05
commit f3a69571a2
6 changed files with 179 additions and 131 deletions

46
src/main/cpp/kernel.cpp Normal file
View File

@@ -0,0 +1,46 @@
#include "kernel.h"
#include "egl_context.h"
#include "render_target.h"
#include "logger.h"
#include "aidl/com/omixlab/mosis/IMosisListener.h"
#include <android/hardware_buffer.h>
using namespace aidl::com::omixlab::mosis;
using namespace aidl::android::hardware;
void Kernel::main_loop()
{
m_egl_context = std::make_unique<egl::Context>();
if (!m_egl_context->create())
{
Logger::Log("failed to create EGL context");
return;
}
m_render_target = std::make_unique<RenderTarget>();
if (!m_render_target->create_exported(1024, 1024))
{
Logger::Log("failed to create render target");
return;
}
m_render_target->bind();
m_listener->onServiceInitialized(true);
m_aidl_buffer = std::make_unique<HardwareBuffer>();
m_aidl_buffer->reset(m_render_target->hardware_buffer());
m_listener->onBufferAvailable(*m_aidl_buffer);
while (true)
{
glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glFinish();
m_listener->onFrameAvailable();
std::this_thread::sleep_for(std::chrono::milliseconds(100));
}
}
Kernel::Kernel(const std::shared_ptr<IMosisListener> &listener) : m_listener(listener)
{
m_main_loop_thread = std::thread(&Kernel::main_loop, this);
}
Kernel::~Kernel() = default;