diff options
Diffstat (limited to 'src/akiru')
-rw-r--r-- | src/akiru/CMakeLists.txt | 12 | ||||
-rw-r--r-- | src/akiru/akiru.rc | bin | 0 -> 3284 bytes | |||
-rw-r--r-- | src/akiru/akiru.vcxproj | 208 | ||||
-rw-r--r-- | src/akiru/akiru.vcxproj.filters | 34 | ||||
-rw-r--r-- | src/akiru/resource.h | bin | 0 -> 898 bytes | |||
-rw-r--r-- | src/akiru/src/akiru.cpp | 124 | ||||
-rw-r--r-- | src/akiru/src/akiru.h | 35 | ||||
-rw-r--r-- | src/akiru/src/emuwindow/emuwindow_glfw.cpp | 100 | ||||
-rw-r--r-- | src/akiru/src/emuwindow/emuwindow_glfw.h | 56 | ||||
-rw-r--r-- | src/akiru/src/version.h | 6 |
10 files changed, 575 insertions, 0 deletions
diff --git a/src/akiru/CMakeLists.txt b/src/akiru/CMakeLists.txt new file mode 100644 index 000000000..9517b11a4 --- /dev/null +++ b/src/akiru/CMakeLists.txt @@ -0,0 +1,12 @@ +set(SRCS src/akiru.cpp + src/emuwindow/emuwindow_glfw.cpp) + +# NOTE: This is a workaround for CMake bug 0006976 (missing X11_xf86vmode_LIB variable) +if (NOT X11_xf86vmode_LIB) + set(X11_xv86vmode_LIB Xxf86vm) +endif() + +add_executable(akiru ${SRCS}) +target_link_libraries(akiru core common ${OPENGL_LIBRARIES} ${GLFW_LIBRARIES} GLEW rt ${X11_Xrandr_LIB} ${X11_xv86vmode_LIB}) + +#install(TARGETS akiru RUNTIME DESTINATION ${bindir}) diff --git a/src/akiru/akiru.rc b/src/akiru/akiru.rc Binary files differnew file mode 100644 index 000000000..db4fc80b9 --- /dev/null +++ b/src/akiru/akiru.rc diff --git a/src/akiru/akiru.vcxproj b/src/akiru/akiru.vcxproj new file mode 100644 index 000000000..f5ab86719 --- /dev/null +++ b/src/akiru/akiru.vcxproj @@ -0,0 +1,208 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{CE7D2C07-21CE-4590-81AB-2ADA88A2B85F}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>emu_win32</RootNamespace> + <ProjectName>akiru</ProjectName> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\vsprops\Base.props" /> + <Import Project="..\..\vsprops\CodeGen_Debug.props" /> + <Import Project="..\..\vsprops\App.props" /> + <Import Project="..\..\vsprops\Optimization_Debug.props" /> + <Import Project="..\..\vsprops\Externals.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\vsprops\Base.props" /> + <Import Project="..\..\vsprops\CodeGen_Debug.props" /> + <Import Project="..\..\vsprops\App.props" /> + <Import Project="..\..\vsprops\Optimization_Debug.props" /> + <Import Project="..\..\vsprops\Externals.props" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\vsprops\Base.props" /> + <Import Project="..\..\vsprops\CodeGen_Release.props" /> + <Import Project="..\..\vsprops\App.props" /> + <Import Project="..\..\vsprops\Optimization_Release.props" /> + <Import Project="..\..\vsprops\Externals.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\vsprops\Base.props" /> + <Import Project="..\..\vsprops\CodeGen_Release.props" /> + <Import Project="..\..\vsprops\App.props" /> + <Import Project="..\..\vsprops\Optimization_Release.props" /> + <Import Project="..\..\vsprops\Externals.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <CustomBuildBeforeTargets> + </CustomBuildBeforeTargets> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <CustomBuildBeforeTargets /> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + </ClCompile> + <Link /> + <CustomBuildStep> + <Outputs> + </Outputs> + <Command> + </Command> + </CustomBuildStep> + <PreBuildEvent /> + <Link /> + <Link> + <IgnoreSpecificDefaultLibraries>msvcrtd.lib;msvcrt.lib</IgnoreSpecificDefaultLibraries> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + </ClCompile> + <Link /> + <CustomBuildStep> + <Outputs> + </Outputs> + <Command> + </Command> + </CustomBuildStep> + <PreBuildEvent /> + <Link> + <IgnoreSpecificDefaultLibraries>msvcrtd.lib;msvcrt.lib</IgnoreSpecificDefaultLibraries> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + </ClCompile> + <Link> + <SpecifySectionAttributes> + </SpecifySectionAttributes> + <IgnoreSpecificDefaultLibraries>libcmt.lib</IgnoreSpecificDefaultLibraries> + </Link> + <CustomBuildStep> + <Command> + </Command> + </CustomBuildStep> + <CustomBuildStep> + <Message> + </Message> + </CustomBuildStep> + <CustomBuildStep> + <Outputs> + </Outputs> + </CustomBuildStep> + <PreBuildEvent /> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + </ClCompile> + <Link> + <SpecifySectionAttributes> + </SpecifySectionAttributes> + <IgnoreAllDefaultLibraries> + </IgnoreAllDefaultLibraries> + <IgnoreSpecificDefaultLibraries>libcmt.lib</IgnoreSpecificDefaultLibraries> + </Link> + <CustomBuildStep> + <Command> + </Command> + </CustomBuildStep> + <CustomBuildStep> + <Message> + </Message> + </CustomBuildStep> + <CustomBuildStep> + <Outputs> + </Outputs> + </CustomBuildStep> + <PreBuildEvent /> + </ItemDefinitionGroup> + <ItemGroup> + <ProjectReference Include="..\common\common.vcxproj"> + <Project>{dfe335fc-755d-4baa-8452-94434f8a1edb}</Project> + <Private>true</Private> + <ReferenceOutputAssembly>true</ReferenceOutputAssembly> + <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies> + <LinkLibraryDependencies>true</LinkLibraryDependencies> + <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs> + </ProjectReference> + <ProjectReference Include="..\core\core.vcxproj"> + <Project>{8aea7f29-3466-4786-a10d-6a4bd0610977}</Project> + <Private>true</Private> + <ReferenceOutputAssembly>true</ReferenceOutputAssembly> + <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies> + <LinkLibraryDependencies>true</LinkLibraryDependencies> + <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <ClCompile Include="src\emuwindow\emuwindow_glfw.cpp" /> + <ClCompile Include="src\akiru.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="resource.h" /> + <ClInclude Include="src\emuwindow\emuwindow_glfw.h" /> + <ClInclude Include="src\akiru.h" /> + <ClInclude Include="src\version.h" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="akiru.rc" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/src/akiru/akiru.vcxproj.filters b/src/akiru/akiru.vcxproj.filters new file mode 100644 index 000000000..2fc1128af --- /dev/null +++ b/src/akiru/akiru.vcxproj.filters @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <ClCompile Include="src\akiru.cpp" /> + <ClCompile Include="src\emuwindow\emuwindow_glfw.cpp"> + <Filter>emuwindow</Filter> + </ClCompile> + <ClCompile Include="src\emuwindow\emuwindow_sdl.cpp"> + <Filter>emuwindow</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="resource.h" /> + <ClInclude Include="src\version.h" /> + <ClInclude Include="src\emuwindow\emuwindow_glfw.h"> + <Filter>emuwindow</Filter> + </ClInclude> + <ClInclude Include="src\akiru.h" /> + <ClInclude Include="src\emuwindow\emuwindow_sdl.h"> + <Filter>emuwindow</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="akiru.rc" /> + </ItemGroup> + <ItemGroup> + <None Include="res\icon3_48x48.ico" /> + </ItemGroup> + <ItemGroup> + <Filter Include="emuwindow"> + <UniqueIdentifier>{e3161526-9f53-4670-8dae-2be81ff01bc2}</UniqueIdentifier> + </Filter> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/src/akiru/resource.h b/src/akiru/resource.h Binary files differnew file mode 100644 index 000000000..0d42c8a8a --- /dev/null +++ b/src/akiru/resource.h diff --git a/src/akiru/src/akiru.cpp b/src/akiru/src/akiru.cpp new file mode 100644 index 000000000..0d15c5b20 --- /dev/null +++ b/src/akiru/src/akiru.cpp @@ -0,0 +1,124 @@ +/*! + * Copyright (C) 2013 Akiru Emulator + * + * @file akiry.cpp + * @author ShizZy <shizzy247@gmail.com> + * @date 2012-02-11 + * @brief Main entry point + * + * @section LICENSE + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details at + * http://www.gnu.org/copyleft/gpl.html + * + * Official project repository can be found at: + * http://code.google.com/p/gekko-gc-emu/ + */ + +#include "common.h" +#include "platform.h" + +#if EMU_PLATFORM == PLATFORM_LINUX +#include <unistd.h> +#endif + +#include "config.h" +#include "xml.h" +#include "x86_utils.h" + +//#include "core.h" +//#include "dvd/loader.h" +//#include "powerpc/cpu_core.h" +//#include "hw/hw.h" +//#include "video_core.h" + +#include "emuwindow/emuwindow_glfw.h" + +#include "akiru.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////// +// This is needed to fix SDL in certain build environments +#ifdef main +#undef main +#endif + +//#define PLAY_FIFO_RECORDING + +/// Application entry point +int __cdecl main(int argc, char **argv) { + u32 tight_loop; + + LOG_NOTICE(TMASTER, APP_NAME " starting...\n"); + + char program_dir[MAX_PATH]; + _getcwd(program_dir, MAX_PATH-1); + size_t cwd_len = strlen(program_dir); + program_dir[cwd_len] = '/'; + program_dir[cwd_len+1] = '\0'; + + common::ConfigManager config_manager; + config_manager.set_program_dir(program_dir, MAX_PATH); + config_manager.ReloadConfig(NULL); + core::SetConfigManager(&config_manager); + + EmuWindow_GLFW* emu_window = new EmuWindow_GLFW; + + if (E_OK != core::Init(emu_window)) { + LOG_ERROR(TMASTER, "core initialization failed, exiting..."); + core::Kill(); + exit(1); + } + +#ifndef PLAY_FIFO_RECORDING + // Load a game or die... + if (E_OK == dvd::LoadBootableFile(common::g_config->default_boot_file())) { + if (common::g_config->enable_auto_boot()) { + core::Start(); + } else { + LOG_ERROR(TMASTER, "Autoboot required in no-GUI mode... Exiting!\n"); + } + } else { + LOG_ERROR(TMASTER, "Failed to load a bootable file... Exiting!\n"); + exit(E_ERR); + } + // run the game + while(core::SYS_DIE != core::g_state) { + if (core::SYS_RUNNING == core::g_state) { + if(!(cpu->is_on)) { + cpu->Start(); // Initialize and start CPU. + } else { + for(tight_loop = 0; tight_loop < 10000; ++tight_loop) { + cpu->execStep(); + } + } + } else if (core::SYS_HALTED == core::g_state) { + core::Stop(); + } + } + core::Kill(); +#else + // load fifo log and replay it + + // TODO: Restructure initialization process - Fix Flipper_Open being called from dvd loaders (wtf?) + Flipper_Open(); + video_core::Start(emu_window); + core::SetState(core::SYS_RUNNING); + + fifo_player::FPFile file; + fifo_player::Load("/home/tony/20_frames.gff", file); + fifo_player::PlayFile(file); + + // TODO: Wait for video core to finish - PlayFile should handle this + while (1); +#endif + delete emu_window; + + return E_OK; +} diff --git a/src/akiru/src/akiru.h b/src/akiru/src/akiru.h new file mode 100644 index 000000000..a3b210922 --- /dev/null +++ b/src/akiru/src/akiru.h @@ -0,0 +1,35 @@ +/*! + * Copyright (C) 2005-2012 Gekko Emulator + * + * \file pcafe.h + * \author ShizZy <shizzy247@gmail.com> + * \date 2012-02-11 + * \brief Main entry point + * + * \section LICENSE + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details at + * http://www.gnu.org/copyleft/gpl.html + * + * Official project repository can be found at: + * http://code.google.com/p/gekko-gc-emu/ + */ + +#ifndef PCAFE_PCAFE_H_ +#define PCAFE_PCAFE_H_ + +#include "version.h" + +#define APP_NAME "gekko" +#define APP_VERSION "0.31-" VERSION +#define APP_TITLE APP_NAME " " APP_VERSION +#define COPYRIGHT "Copyright (C) 2005-2012 Gekko Team" + +#endif // PCAFE_PCAFE_H_
\ No newline at end of file diff --git a/src/akiru/src/emuwindow/emuwindow_glfw.cpp b/src/akiru/src/emuwindow/emuwindow_glfw.cpp new file mode 100644 index 000000000..884c10ad0 --- /dev/null +++ b/src/akiru/src/emuwindow/emuwindow_glfw.cpp @@ -0,0 +1,100 @@ +/** + * Copyright (C) 2005-2012 Gekko Emulator + * + * @file emuwindow_glfw.h + * @author ShizZy <shizzy247@gmail.com> + * @date 2012-04-20 + * @brief Implementation implementation of EmuWindow class for GLFW + * + * @section LICENSE + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details at + * http://www.gnu.org/copyleft/gpl.html + * + * Official project repository can be found at: + * http://code.google.com/p/gekko-gc-emu/ + */ + +#include "common.h" +#include "video_core.h" +#include "emuwindow_glfw.h" +#include "gc_controller.h" +#include "keyboard_input/keyboard_input.h" + +static void OnKeyEvent(GLFWwindow win, int key, int action) { + EmuWindow_GLFW* emuwin = (EmuWindow_GLFW*)glfwGetWindowUserPointer(win); + input_common::GCController::GCButtonState state; + + if (action == GLFW_PRESS) { + state = input_common::GCController::PRESSED; + } else { + state = input_common::GCController::RELEASED; + } + for (int channel = 0; channel < 4 && emuwin->controller_interface(); ++channel) { + emuwin->controller_interface()->SetControllerStatus(channel, key, state); + } +} + +static void OnWindowSizeEvent(GLFWwindow win, int width, int height) { + EmuWindow_GLFW* emuwin = (EmuWindow_GLFW*)glfwGetWindowUserPointer(win); + emuwin->set_client_area_width(width); + emuwin->set_client_area_height(height); +} + +/// EmuWindow_GLFW constructor +EmuWindow_GLFW::EmuWindow_GLFW() { + // Initialize the window + if(glfwInit() != GL_TRUE) { + LOG_ERROR(TVIDEO, "Failed to initialize GLFW! Exiting..."); + exit(E_ERR); + } + glfwWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_OPENGL_VERSION_MINOR, 1); + render_window_ = glfwCreateWindow(640, 480, GLFW_WINDOWED, "gekko", 0); + + // Setup callbacks + glfwSetWindowUserPointer(render_window_, this); + glfwSetKeyCallback(render_window_, OnKeyEvent); + glfwSetWindowSizeCallback(render_window_, OnWindowSizeEvent); + + DoneCurrent(); +} + +/// EmuWindow_GLFW destructor +EmuWindow_GLFW::~EmuWindow_GLFW() { + glfwTerminate(); +} + +/// Swap buffers to display the next frame +void EmuWindow_GLFW::SwapBuffers() { + glfwSwapBuffers(render_window_); +} + +/// Polls window events +void EmuWindow_GLFW::PollEvents() { + // TODO(ShizZy): Does this belong here? This is a reasonable place to update the window title + // from the main thread, but this should probably be in an event handler... + static char title[128]; + sprintf(title, "%s (FPS: %02.02f)", window_title_.c_str(), + video_core::g_renderer->current_fps()); + glfwSetWindowTitle(render_window_, title); + + glfwPollEvents(); +} + +/// Makes the GLFW OpenGL context current for the caller thread +void EmuWindow_GLFW::MakeCurrent() { + glfwMakeContextCurrent(render_window_); +} + +/// Releases (dunno if this is the "right" word) the GLFW context from the caller thread +void EmuWindow_GLFW::DoneCurrent() { + glfwMakeContextCurrent(NULL); +} diff --git a/src/akiru/src/emuwindow/emuwindow_glfw.h b/src/akiru/src/emuwindow/emuwindow_glfw.h new file mode 100644 index 000000000..1256cabe4 --- /dev/null +++ b/src/akiru/src/emuwindow/emuwindow_glfw.h @@ -0,0 +1,56 @@ +/** + * Copyright (C) 2005-2012 Gekko Emulator + * + * @file emuwindow_glfw.h + * @author ShizZy <shizzy247@gmail.com> + * @date 2012-04-20 + * @brief Implementation implementation of EmuWindow class for GLFW + * + * @section LICENSE + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details at + * http://www.gnu.org/copyleft/gpl.html + * + * Official project repository can be found at: + * http://code.google.com/p/gekko-gc-emu/ + */ + +#ifndef VIDEO_CORE_EMUWINDOW_GLFW_ +#define VIDEO_CORE_EMUWINDOW_GLFW_ + +#include <GL/glew.h> +#include <GL/glfw3.h> + +#include "video/emuwindow.h" + +class EmuWindow_GLFW : public EmuWindow { +public: + EmuWindow_GLFW(); + ~EmuWindow_GLFW(); + + /// Swap buffers to display the next frame + void SwapBuffers(); + + /// Polls window events + void PollEvents(); + + /// Makes the graphics context current for the caller thread + void MakeCurrent(); + + /// Releases (dunno if this is the "right" word) the GLFW context from the caller thread + void DoneCurrent(); + + GLFWwindow render_window_; ///< Internal GLFW render window + +private: + +}; + +#endif // VIDEO_CORE_EMUWINDOW_GLFW_ diff --git a/src/akiru/src/version.h b/src/akiru/src/version.h new file mode 100644 index 000000000..07b88c641 --- /dev/null +++ b/src/akiru/src/version.h @@ -0,0 +1,6 @@ +// GENERATED - Do not edit! +#ifndef VERSION_H_ +#define VERSION_H_ +#define __BUILD__ "122" +#define VERSION __BUILD__ +#endif // VERSION_H_ |