mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-10-25 18:01:42 +00:00
adding initial project layout
This commit is contained in:
parent
8404376c6b
commit
27474060e1
340 changed files with 61084 additions and 0 deletions
12
src/akiru/CMakeLists.txt
Normal file
12
src/akiru/CMakeLists.txt
Normal file
|
|
@ -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})
|
||||
BIN
src/akiru/akiru.rc
Normal file
BIN
src/akiru/akiru.rc
Normal file
Binary file not shown.
208
src/akiru/akiru.vcxproj
Normal file
208
src/akiru/akiru.vcxproj
Normal file
|
|
@ -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>
|
||||
34
src/akiru/akiru.vcxproj.filters
Normal file
34
src/akiru/akiru.vcxproj.filters
Normal file
|
|
@ -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>
|
||||
BIN
src/akiru/resource.h
Normal file
BIN
src/akiru/resource.h
Normal file
Binary file not shown.
124
src/akiru/src/akiru.cpp
Normal file
124
src/akiru/src/akiru.cpp
Normal file
|
|
@ -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;
|
||||
}
|
||||
35
src/akiru/src/akiru.h
Normal file
35
src/akiru/src/akiru.h
Normal file
|
|
@ -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_
|
||||
100
src/akiru/src/emuwindow/emuwindow_glfw.cpp
Normal file
100
src/akiru/src/emuwindow/emuwindow_glfw.cpp
Normal file
|
|
@ -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);
|
||||
}
|
||||
56
src/akiru/src/emuwindow/emuwindow_glfw.h
Normal file
56
src/akiru/src/emuwindow/emuwindow_glfw.h
Normal file
|
|
@ -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_
|
||||
6
src/akiru/src/version.h
Normal file
6
src/akiru/src/version.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
// GENERATED - Do not edit!
|
||||
#ifndef VERSION_H_
|
||||
#define VERSION_H_
|
||||
#define __BUILD__ "122"
|
||||
#define VERSION __BUILD__
|
||||
#endif // VERSION_H_
|
||||
Loading…
Add table
Add a link
Reference in a new issue