From 0831dad467374f11256b5e63ca66b9dff5bf2463 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 22 Feb 2017 12:21:10 -0500 Subject: Initial support for Haiku. --- Source/Core/Common/GL/GLInterface/BGL.cpp | 70 +++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 Source/Core/Common/GL/GLInterface/BGL.cpp (limited to 'Source/Core/Common/GL/GLInterface/BGL.cpp') diff --git a/Source/Core/Common/GL/GLInterface/BGL.cpp b/Source/Core/Common/GL/GLInterface/BGL.cpp new file mode 100644 index 0000000000..7cc9070a49 --- /dev/null +++ b/Source/Core/Common/GL/GLInterface/BGL.cpp @@ -0,0 +1,70 @@ +// Copyright 2017 Dolphin Emulator Project +// Licensed under GPLv2+ +// Refer to the license.txt file included. + +#include "Common/GL/GLInterface/BGL.h" + +#include +#include +#include + +void cInterfaceBGL::Swap() +{ + m_gl->SwapBuffers(); +} + +bool cInterfaceBGL::Create(void* window_handle, bool core) +{ + m_window = static_cast(window_handle); + + m_gl = new BGLView(m_window->Bounds(), "cInterfaceBGL", B_FOLLOW_ALL_SIDES, 0, + BGL_RGB | BGL_DOUBLE | BGL_ALPHA); + m_window->AddChild(m_gl); + + s_opengl_mode = GLInterfaceMode::MODE_OPENGL; + + // Control m_window size and picture scaling + BRect size = m_gl->Frame(); + s_backbuffer_width = size.IntegerWidth(); + s_backbuffer_height = size.IntegerHeight(); + + return true; +} + +bool cInterfaceBGL::MakeCurrent() +{ + m_gl->LockGL(); + return true; +} + +bool cInterfaceBGL::ClearCurrent() +{ + m_gl->UnlockGL(); + return true; +} + +void cInterfaceBGL::Shutdown() +{ + // We don't need to delete m_gl, it's owned by the BWindow. + m_gl = nullptr; +} + +void cInterfaceBGL::Update() +{ + BRect size = m_gl->Frame(); + + if (s_backbuffer_width == size.IntegerWidth() && s_backbuffer_height == size.IntegerHeight()) + return; + + s_backbuffer_width = size.IntegerWidth(); + s_backbuffer_height = size.IntegerHeight(); +} + +void cInterfaceBGL::SwapInterval(int interval) +{ +} + +void* cInterfaceBGL::GetFuncAddress(const std::string& name) +{ + return m_gl->GetGLProcAddress(name.c_str()); +} -- cgit v1.2.3