renamed from citrus to citra

This commit is contained in:
ShizZy 2013-09-26 17:34:48 -04:00
parent a7b06698ff
commit 8bb0c457bc
20 changed files with 49 additions and 49 deletions

12
src/citra/CMakeLists.txt Normal file
View file

@ -0,0 +1,12 @@
set(SRCS src/citra.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(citra ${SRCS})
target_link_libraries(citra core common ${OPENGL_LIBRARIES} ${GLFW_LIBRARIES} GLEW rt ${X11_Xrandr_LIB} ${X11_xv86vmode_LIB})
#install(TARGETS citra RUNTIME DESTINATION ${bindir})

BIN
src/citra/citra.rc Normal file

Binary file not shown.

214
src/citra/citra.vcxproj Normal file
View file

@ -0,0 +1,214 @@
<?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>citra</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\externals.props" />
<Import Project="..\..\vsprops\code_generation_debug.props" />
<Import Project="..\..\vsprops\app.props" />
<Import Project="..\..\vsprops\optimization_debug.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\externals.props" />
<Import Project="..\..\vsprops\code_generation_debug.props" />
<Import Project="..\..\vsprops\app.props" />
<Import Project="..\..\vsprops\optimization_debug.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\externals.props" />
<Import Project="..\..\vsprops\code_generation_release.props" />
<Import Project="..\..\vsprops\app.props" />
<Import Project="..\..\vsprops\optimization_release.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\externals.props" />
<Import Project="..\..\vsprops\code_generation_release.props" />
<Import Project="..\..\vsprops\app.props" />
<Import Project="..\..\vsprops\optimization_release.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>
</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>
</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\citra.cpp" />
<ClCompile Include="src\emu_window\emu_window_glfw.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource.h" />
<ClInclude Include="src\citra.h" />
<ClInclude Include="src\emu_window\emu_window_glfw.h" />
<ClInclude Include="src\version.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="citra.rc" />
</ItemGroup>
<ItemGroup>
<None Include="CMakeLists.txt" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="src\citra.cpp" />
<ClCompile Include="src\emu_window\emu_window_glfw.cpp">
<Filter>emu_window</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource.h" />
<ClInclude Include="src\version.h" />
<ClInclude Include="src\citra.h" />
<ClInclude Include="src\emu_window\emu_window_glfw.h">
<Filter>emu_window</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="citra.rc" />
</ItemGroup>
<ItemGroup>
<Filter Include="emu_window">
<UniqueIdentifier>{e3161526-9f53-4670-8dae-2be81ff01bc2}</UniqueIdentifier>
</Filter>
</ItemGroup>
</Project>

BIN
src/citra/resource.h Normal file

Binary file not shown.

90
src/citra/src/citra.cpp Normal file
View file

@ -0,0 +1,90 @@
/**
* Copyright (C) 2013 citra Emulator
*
* @file citra.cpp
* @author ShizZy <shizzy247@gmail.com>
* @date 2013-09-04
* @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 "log_manager.h"
#include "file_util.h"
#include "core.h"
#include "emu_window/emu_window_glfw.h"
#include "citra.h"
//#define PLAY_FIFO_RECORDING
/// Application entry point
int __cdecl main(int argc, char **argv) {
//u32 tight_loop;
printf("citra starting...\n");
std::string program_dir = File::GetCurrentDir();
LogManager::Init();
EmuWindow_GLFW* emu_window = new EmuWindow_GLFW;
Core::Init(emu_window);
//if (E_OK != core::Init(emu_window)) {
// LOG_ERROR(TMASTER, "core initialization failed, exiting...");
// core::Kill();
// exit(1);
//}
//// 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();
while (1) {
}
//delete emu_window;
return 0;
}

35
src/citra/src/citra.h Normal file
View file

@ -0,0 +1,35 @@
/**
* Copyright (C) 2013 Citra Emulator
*
* @file citra.h
* @author ShizZy <shizzy247@gmail.com>
* @date 2013-09-04
* @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 CITRA_CITRA_H
#define CITRA_CITRA_H
#include "version.h"
#define APP_NAME "citra"
#define APP_VERSION "0.01-" VERSION
#define APP_TITLE APP_NAME " " APP_VERSION
#define COPYRIGHT "Copyright (C) 2013 Citra Emulator"
#endif // CITRA_CITRA_H

View file

@ -0,0 +1,96 @@
/**
* Copyright (C) 2013 Citra Emulator
*
* @file emu_window_glfw.cpp
* @author ShizZy <shizzy@6bit.net>
* @date 2013-09-04
* @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 "emu_window_glfw.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) {
printf("Failed to initialize GLFW! Exiting...");
exit(1);
}
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
render_window_ = glfwCreateWindow(640, 480, "citra", NULL, NULL);
// 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(), 0.0f);
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);
}

View file

@ -0,0 +1,56 @@
/**
* Copyright (C) 2013 Citra Emulator
*
* @file emu_window_glfw.h
* @author ShizZy <shizzy@6bit.net>
* @date 2013-09-04
* @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 CITRA_EMUWINDOW_GLFW_
#define CITRA_EMUWINDOW_GLFW_
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include "emu_window.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 // CITRA_EMUWINDOW_GLFW_

6
src/citra/src/version.h Normal file
View file

@ -0,0 +1,6 @@
// GENERATED - Do not edit!
#ifndef VERSION_H_
#define VERSION_H_
#define __BUILD__ "122"
#define VERSION __BUILD__
#endif // VERSION_H_