mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2024-07-04 23:31:19 +01:00
added video_core project to solution
This commit is contained in:
parent
89fd6eb237
commit
23506defe3
9 changed files with 578 additions and 1 deletions
12
citra.sln
12
citra.sln
|
@ -1,5 +1,5 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Express 2013 for Windows Desktop
|
# Visual Studio 2013
|
||||||
VisualStudioVersion = 12.0.21005.1
|
VisualStudioVersion = 12.0.21005.1
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "src\common\common.vcxproj", "{DFE335FC-755D-4BAA-8452-94434F8A1EDB}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "src\common\common.vcxproj", "{DFE335FC-755D-4BAA-8452-94434F8A1EDB}"
|
||||||
|
@ -21,6 +21,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "scm_rev_gen", "src\common\s
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "citra_qt", "src\citra_qt\citra_qt.vcxproj", "{A587F714-490F-407A-9E36-7AB7FA0D7BAB}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "citra_qt", "src\citra_qt\citra_qt.vcxproj", "{A587F714-490F-407A-9E36-7AB7FA0D7BAB}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "video_core", "src\video_core\video_core.vcxproj", "{6678D1A3-33A6-48A9-878B-48E5D2903D27}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Win32 = Debug|Win32
|
Debug|Win32 = Debug|Win32
|
||||||
|
@ -69,6 +71,14 @@ Global
|
||||||
{A587F714-490F-407A-9E36-7AB7FA0D7BAB}.Release|Win32.Build.0 = Release|Win32
|
{A587F714-490F-407A-9E36-7AB7FA0D7BAB}.Release|Win32.Build.0 = Release|Win32
|
||||||
{A587F714-490F-407A-9E36-7AB7FA0D7BAB}.Release|x64.ActiveCfg = Release|x64
|
{A587F714-490F-407A-9E36-7AB7FA0D7BAB}.Release|x64.ActiveCfg = Release|x64
|
||||||
{A587F714-490F-407A-9E36-7AB7FA0D7BAB}.Release|x64.Build.0 = Release|x64
|
{A587F714-490F-407A-9E36-7AB7FA0D7BAB}.Release|x64.Build.0 = Release|x64
|
||||||
|
{6678D1A3-33A6-48A9-878B-48E5D2903D27}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{6678D1A3-33A6-48A9-878B-48E5D2903D27}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{6678D1A3-33A6-48A9-878B-48E5D2903D27}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{6678D1A3-33A6-48A9-878B-48E5D2903D27}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{6678D1A3-33A6-48A9-878B-48E5D2903D27}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{6678D1A3-33A6-48A9-878B-48E5D2903D27}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{6678D1A3-33A6-48A9-878B-48E5D2903D27}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{6678D1A3-33A6-48A9-878B-48E5D2903D27}.Release|x64.Build.0 = Release|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
19
src/video_core/CMakeLists.txt
Normal file
19
src/video_core/CMakeLists.txt
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
set(SRCS
|
||||||
|
src/bp_mem.cpp
|
||||||
|
src/cp_mem.cpp
|
||||||
|
src/xf_mem.cpp
|
||||||
|
src/fifo.cpp
|
||||||
|
src/fifo_player.cpp
|
||||||
|
src/vertex_loader.cpp
|
||||||
|
src/vertex_manager.cpp
|
||||||
|
src/video_core.cpp
|
||||||
|
src/shader_manager.cpp
|
||||||
|
src/texture_decoder.cpp
|
||||||
|
src/texture_manager.cpp
|
||||||
|
src/utils.cpp
|
||||||
|
src/renderer_gl3/renderer_gl3.cpp
|
||||||
|
src/renderer_gl3/shader_interface.cpp
|
||||||
|
src/renderer_gl3/texture_interface.cpp
|
||||||
|
src/renderer_gl3/uniform_manager.cpp)
|
||||||
|
|
||||||
|
add_library(video_core STATIC ${SRCS})
|
116
src/video_core/src/renderer_base.h
Normal file
116
src/video_core/src/renderer_base.h
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2014 Citra Emulator
|
||||||
|
*
|
||||||
|
* @file renderer_base.h
|
||||||
|
* @author bunnei
|
||||||
|
* @date 2014-04-05
|
||||||
|
* @brief Renderer base class for new video core
|
||||||
|
*
|
||||||
|
* @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/
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
#include "hash.h"
|
||||||
|
|
||||||
|
class RendererBase {
|
||||||
|
public:
|
||||||
|
|
||||||
|
/// Used to reference a framebuffer
|
||||||
|
enum kFramebuffer {
|
||||||
|
kFramebuffer_VirtualXFB = 0,
|
||||||
|
kFramebuffer_EFB,
|
||||||
|
kFramebuffer_Texture
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Used for referencing the render modes
|
||||||
|
enum kRenderMode {
|
||||||
|
kRenderMode_None = 0,
|
||||||
|
kRenderMode_Multipass = 1,
|
||||||
|
kRenderMode_ZComp = 2,
|
||||||
|
kRenderMode_UseDstAlpha = 4
|
||||||
|
};
|
||||||
|
|
||||||
|
RendererBase() : current_fps_(0), current_frame_(0) {
|
||||||
|
}
|
||||||
|
|
||||||
|
~RendererBase() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Blits the EFB to the external framebuffer (XFB)
|
||||||
|
* @param src_rect Source rectangle in EFB to copy
|
||||||
|
* @param dst_rect Destination rectangle in EFB to copy to
|
||||||
|
* @param dest_height Destination height in pixels
|
||||||
|
*/
|
||||||
|
virtual void CopyToXFB(const Rect& src_rect, const Rect& dst_rect) = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear the screen
|
||||||
|
* @param rect Screen rectangle to clear
|
||||||
|
* @param enable_color Enable color clearing
|
||||||
|
* @param enable_alpha Enable alpha clearing
|
||||||
|
* @param enable_z Enable depth clearing
|
||||||
|
* @param color Clear color
|
||||||
|
* @param z Clear depth
|
||||||
|
*/
|
||||||
|
virtual void Clear(const Rect& rect, bool enable_color, bool enable_alpha, bool enable_z,
|
||||||
|
u32 color, u32 z) = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set a specific render mode
|
||||||
|
* @param flag Render flags mode to enable
|
||||||
|
*/
|
||||||
|
virtual void SetMode(kRenderMode flags) = 0;
|
||||||
|
|
||||||
|
/// Reset the full renderer API to the NULL state
|
||||||
|
virtual void ResetRenderState() = 0;
|
||||||
|
|
||||||
|
/// Restore the full renderer API state - As the game set it
|
||||||
|
virtual void RestoreRenderState() = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the emulator window to use for renderer
|
||||||
|
* @param window EmuWindow handle to emulator window to use for rendering
|
||||||
|
*/
|
||||||
|
virtual void SetWindow(EmuWindow* window) = 0;
|
||||||
|
|
||||||
|
/// Initialize the renderer
|
||||||
|
virtual void Init() = 0;
|
||||||
|
|
||||||
|
/// Shutdown the renderer
|
||||||
|
virtual void ShutDown() = 0;
|
||||||
|
|
||||||
|
/// Converts EFB rectangle coordinates to renderer rectangle coordinates
|
||||||
|
//static Rect EFBToRendererRect(const Rect& rect) {
|
||||||
|
// return Rect(rect.x0_, kGCEFBHeight - rect.y0_, rect.x1_, kGCEFBHeight - rect.y1_);
|
||||||
|
//}
|
||||||
|
|
||||||
|
// Getter/setter functions:
|
||||||
|
// ------------------------
|
||||||
|
|
||||||
|
f32 current_fps() const { return current_fps_; }
|
||||||
|
|
||||||
|
int current_frame() const { return current_frame_; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
f32 current_fps_; ///< Current framerate, should be set by the renderer
|
||||||
|
int current_frame_; ///< Current frame, should be set by the renderer
|
||||||
|
|
||||||
|
private:
|
||||||
|
DISALLOW_COPY_AND_ASSIGN(RendererBase);
|
||||||
|
};
|
66
src/video_core/src/utils.cpp
Normal file
66
src/video_core/src/utils.cpp
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2005-2012 Gekko Emulator
|
||||||
|
*
|
||||||
|
* @file utils.cpp
|
||||||
|
* @author ShizZy <shizzy247@gmail.com>
|
||||||
|
* @date 2012-12-28
|
||||||
|
* @brief Utility functions (in general, not related to emulation) useful for video core
|
||||||
|
*
|
||||||
|
* @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 <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
|
namespace VideoCore {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dumps a texture to TGA
|
||||||
|
* @param filename String filename to dump texture to
|
||||||
|
* @param width Width of texture in pixels
|
||||||
|
* @param height Height of texture in pixels
|
||||||
|
* @param raw_data Raw RGBA8 texture data to dump
|
||||||
|
* @todo This should be moved to some general purpose/common code
|
||||||
|
*/
|
||||||
|
void DumpTGA(std::string filename, int width, int height, u8* raw_data) {
|
||||||
|
TGAHeader hdr;
|
||||||
|
FILE* fout;
|
||||||
|
u8 r, g, b;
|
||||||
|
|
||||||
|
memset(&hdr, 0, sizeof(hdr));
|
||||||
|
hdr.datatypecode = 2; // uncompressed RGB
|
||||||
|
hdr.bitsperpixel = 24; // 24 bpp
|
||||||
|
hdr.width = width;
|
||||||
|
hdr.height = height;
|
||||||
|
|
||||||
|
fout = fopen(filename.c_str(), "wb");
|
||||||
|
fwrite(&hdr, sizeof(TGAHeader), 1, fout);
|
||||||
|
for (int i = 0; i < height; i++) {
|
||||||
|
for (int j = 0; j < width; j++) {
|
||||||
|
r = raw_data[(4 * (i * width)) + (4 * j) + 0];
|
||||||
|
g = raw_data[(4 * (i * width)) + (4 * j) + 1];
|
||||||
|
b = raw_data[(4 * (i * width)) + (4 * j) + 2];
|
||||||
|
putc(b, fout);
|
||||||
|
putc(g, fout);
|
||||||
|
putc(r, fout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fclose(fout);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
83
src/video_core/src/utils.h
Normal file
83
src/video_core/src/utils.h
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2005-2012 Gekko Emulator
|
||||||
|
*
|
||||||
|
* @file utils.h
|
||||||
|
* @author ShizZy <shizzy247@gmail.com>
|
||||||
|
* @date 2012-12-28
|
||||||
|
* @brief Utility functions (in general, not related to emulation) useful for video core
|
||||||
|
*
|
||||||
|
* @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/
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "common_types.h"
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
namespace FormatPrecision {
|
||||||
|
|
||||||
|
/// Adjust RGBA8 color with RGBA6 precision
|
||||||
|
static inline u32 rgba8_with_rgba6(u32 src) {
|
||||||
|
u32 color = src;
|
||||||
|
color &= 0xFCFCFCFC;
|
||||||
|
color |= (color >> 6) & 0x03030303;
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Adjust RGBA8 color with RGB565 precision
|
||||||
|
static inline u32 rgba8_with_rgb565(u32 src) {
|
||||||
|
u32 color = (src & 0xF8FCF8);
|
||||||
|
color |= (color >> 5) & 0x070007;
|
||||||
|
color |= (color >> 6) & 0x000300;
|
||||||
|
color |= 0xFF000000;
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Adjust Z24 depth value with Z16 precision
|
||||||
|
static inline u32 z24_with_z16(u32 src) {
|
||||||
|
return (src & 0xFFFF00) | (src >> 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
namespace VideoCore {
|
||||||
|
|
||||||
|
/// Structure for the TGA texture format (for dumping)
|
||||||
|
struct TGAHeader {
|
||||||
|
char idlength;
|
||||||
|
char colourmaptype;
|
||||||
|
char datatypecode;
|
||||||
|
short int colourmaporigin;
|
||||||
|
short int colourmaplength;
|
||||||
|
short int x_origin;
|
||||||
|
short int y_origin;
|
||||||
|
short width;
|
||||||
|
short height;
|
||||||
|
char bitsperpixel;
|
||||||
|
char imagedescriptor;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dumps a texture to TGA
|
||||||
|
* @param filename String filename to dump texture to
|
||||||
|
* @param width Width of texture in pixels
|
||||||
|
* @param height Height of texture in pixels
|
||||||
|
* @param raw_data Raw RGBA8 texture data to dump
|
||||||
|
* @todo This should be moved to some general purpose/common code
|
||||||
|
*/
|
||||||
|
void DumpTGA(std::string filename, int width, int height, u8* raw_data);
|
||||||
|
|
||||||
|
} // namespace
|
91
src/video_core/src/video_core.cpp
Normal file
91
src/video_core/src/video_core.cpp
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2014 Citra Emulator
|
||||||
|
*
|
||||||
|
* @file video_core.cpp
|
||||||
|
* @author bunnei
|
||||||
|
* @date 2014-04-05
|
||||||
|
* @brief Main module for new video core
|
||||||
|
*
|
||||||
|
* @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.h"
|
||||||
|
#include "log.h"
|
||||||
|
|
||||||
|
#include "core.h"
|
||||||
|
#include "video_core.h"
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Video Core namespace
|
||||||
|
|
||||||
|
namespace VideoCore {
|
||||||
|
|
||||||
|
EmuWindow* g_emu_window = NULL; ///< Frontend emulator window
|
||||||
|
RendererBase* g_renderer = NULL; ///< Renderer plugin
|
||||||
|
int g_current_frame = 0;
|
||||||
|
|
||||||
|
int VideoEntry(void*) {
|
||||||
|
if (g_emu_window == NULL) {
|
||||||
|
ERROR_LOG(VIDEO, "VideoCore::VideoEntry called without calling Init()!");
|
||||||
|
}
|
||||||
|
g_emu_window->MakeCurrent();
|
||||||
|
//for(;;) {
|
||||||
|
// gp::Fifo_DecodeCommand();
|
||||||
|
//}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Start the video core
|
||||||
|
void Start() {
|
||||||
|
if (g_emu_window == NULL) {
|
||||||
|
ERROR_LOG(VIDEO, "VideoCore::Start called without calling Init()!");
|
||||||
|
}
|
||||||
|
//if (common::g_config->enable_multicore()) {
|
||||||
|
// g_emu_window->DoneCurrent();
|
||||||
|
// g_video_thread = SDL_CreateThread(VideoEntry, NULL, NULL);
|
||||||
|
// if (g_video_thread == NULL) {
|
||||||
|
// LOG_ERROR(TVIDEO, "Unable to create thread: %s... Exiting\n", SDL_GetError());
|
||||||
|
// exit(1);
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Initialize the video core
|
||||||
|
void Init(EmuWindow* emu_window) {
|
||||||
|
g_emu_window = emu_window;
|
||||||
|
//g_renderer = new RendererGL3();
|
||||||
|
//g_renderer->SetWindow(g_emu_window);
|
||||||
|
//g_renderer->Init();
|
||||||
|
|
||||||
|
//gp::Fifo_Init();
|
||||||
|
//gp::VertexManager_Init();
|
||||||
|
//gp::VertexLoader_Init();
|
||||||
|
//gp::BP_Init();
|
||||||
|
//gp::CP_Init();
|
||||||
|
//gp::XF_Init();
|
||||||
|
|
||||||
|
g_current_frame = 0;
|
||||||
|
|
||||||
|
NOTICE_LOG(VIDEO, "initialized ok");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Shutdown the video core
|
||||||
|
void Shutdown() {
|
||||||
|
//delete g_renderer;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
48
src/video_core/src/video_core.h
Normal file
48
src/video_core/src/video_core.h
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
/*!
|
||||||
|
* Copyright (C) 2014 Citra Emulator
|
||||||
|
*
|
||||||
|
* @file video_core.h
|
||||||
|
* @author bunnei
|
||||||
|
* @date 2014-04-05
|
||||||
|
* @brief Main module for new video core
|
||||||
|
*
|
||||||
|
* @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/
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
#include "emu_window.h"
|
||||||
|
#include "renderer_base.h"
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Video Core namespace
|
||||||
|
|
||||||
|
namespace VideoCore {
|
||||||
|
|
||||||
|
extern RendererBase* g_renderer; ///< Renderer plugin
|
||||||
|
extern int g_current_frame; ///< Current frame
|
||||||
|
|
||||||
|
/// Start the video core
|
||||||
|
void Start();
|
||||||
|
|
||||||
|
/// Initialize the video core
|
||||||
|
void Init(EmuWindow* emu_window);
|
||||||
|
|
||||||
|
/// Shutdown the video core
|
||||||
|
void ShutDown();
|
||||||
|
|
||||||
|
} // namespace
|
129
src/video_core/video_core.vcxproj
Normal file
129
src/video_core/video_core.vcxproj
Normal file
|
@ -0,0 +1,129 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="12.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>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="src\utils.cpp" />
|
||||||
|
<ClCompile Include="src\video_core.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="src\renderer_base.h" />
|
||||||
|
<ClInclude Include="src\utils.h" />
|
||||||
|
<ClInclude Include="src\video_core.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Text Include="CMakeLists.txt" />
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{6678D1A3-33A6-48A9-878B-48E5D2903D27}</ProjectGuid>
|
||||||
|
<RootNamespace>input_common</RootNamespace>
|
||||||
|
<ProjectName>video_core</ProjectName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</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\code_generation_debug.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\code_generation_debug.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\code_generation_release.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\code_generation_release.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'" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile />
|
||||||
|
<Link>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile />
|
||||||
|
<Link>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile />
|
||||||
|
<Link>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
</Link>
|
||||||
|
<ClCompile />
|
||||||
|
<ClCompile />
|
||||||
|
<ClCompile />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<ClCompile />
|
||||||
|
<Link>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
15
src/video_core/video_core.vcxproj.filters
Normal file
15
src/video_core/video_core.vcxproj.filters
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="src\video_core.cpp" />
|
||||||
|
<ClCompile Include="src\utils.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="src\renderer_base.h" />
|
||||||
|
<ClInclude Include="src\video_core.h" />
|
||||||
|
<ClInclude Include="src\utils.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Text Include="CMakeLists.txt" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
Loading…
Reference in a new issue