summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2014-04-05 16:04:25 -0400
committerGravatar bunnei2014-04-05 16:04:25 -0400
commit23506defe3f2e9e1eee2968ababc9fb7fca918ae (patch)
treefd96080991fadd6a56f0d636979292b0478bb80a /src
parentadded missing includes to common_types.h (diff)
downloadyuzu-23506defe3f2e9e1eee2968ababc9fb7fca918ae.tar.gz
yuzu-23506defe3f2e9e1eee2968ababc9fb7fca918ae.tar.xz
yuzu-23506defe3f2e9e1eee2968ababc9fb7fca918ae.zip
added video_core project to solution
Diffstat (limited to 'src')
-rw-r--r--src/video_core/CMakeLists.txt19
-rw-r--r--src/video_core/src/renderer_base.h116
-rw-r--r--src/video_core/src/utils.cpp66
-rw-r--r--src/video_core/src/utils.h83
-rw-r--r--src/video_core/src/video_core.cpp91
-rw-r--r--src/video_core/src/video_core.h48
-rw-r--r--src/video_core/video_core.vcxproj129
-rw-r--r--src/video_core/video_core.vcxproj.filters15
8 files changed, 567 insertions, 0 deletions
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt
new file mode 100644
index 000000000..3f486b8fe
--- /dev/null
+++ b/src/video_core/CMakeLists.txt
@@ -0,0 +1,19 @@
1set(SRCS
2 src/bp_mem.cpp
3 src/cp_mem.cpp
4 src/xf_mem.cpp
5 src/fifo.cpp
6 src/fifo_player.cpp
7 src/vertex_loader.cpp
8 src/vertex_manager.cpp
9 src/video_core.cpp
10 src/shader_manager.cpp
11 src/texture_decoder.cpp
12 src/texture_manager.cpp
13 src/utils.cpp
14 src/renderer_gl3/renderer_gl3.cpp
15 src/renderer_gl3/shader_interface.cpp
16 src/renderer_gl3/texture_interface.cpp
17 src/renderer_gl3/uniform_manager.cpp)
18
19add_library(video_core STATIC ${SRCS})
diff --git a/src/video_core/src/renderer_base.h b/src/video_core/src/renderer_base.h
new file mode 100644
index 000000000..9cd02e0b4
--- /dev/null
+++ b/src/video_core/src/renderer_base.h
@@ -0,0 +1,116 @@
1/**
2 * Copyright (C) 2014 Citra Emulator
3 *
4 * @file renderer_base.h
5 * @author bunnei
6 * @date 2014-04-05
7 * @brief Renderer base class for new video core
8 *
9 * @section LICENSE
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of
13 * the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details at
19 * http://www.gnu.org/copyleft/gpl.html
20 *
21 * Official project repository can be found at:
22 * http://code.google.com/p/gekko-gc-emu/
23 */
24
25#pragma once
26
27#include "common.h"
28#include "hash.h"
29
30class RendererBase {
31public:
32
33 /// Used to reference a framebuffer
34 enum kFramebuffer {
35 kFramebuffer_VirtualXFB = 0,
36 kFramebuffer_EFB,
37 kFramebuffer_Texture
38 };
39
40 /// Used for referencing the render modes
41 enum kRenderMode {
42 kRenderMode_None = 0,
43 kRenderMode_Multipass = 1,
44 kRenderMode_ZComp = 2,
45 kRenderMode_UseDstAlpha = 4
46 };
47
48 RendererBase() : current_fps_(0), current_frame_(0) {
49 }
50
51 ~RendererBase() {
52 }
53
54 /**
55 * Blits the EFB to the external framebuffer (XFB)
56 * @param src_rect Source rectangle in EFB to copy
57 * @param dst_rect Destination rectangle in EFB to copy to
58 * @param dest_height Destination height in pixels
59 */
60 virtual void CopyToXFB(const Rect& src_rect, const Rect& dst_rect) = 0;
61
62 /**
63 * Clear the screen
64 * @param rect Screen rectangle to clear
65 * @param enable_color Enable color clearing
66 * @param enable_alpha Enable alpha clearing
67 * @param enable_z Enable depth clearing
68 * @param color Clear color
69 * @param z Clear depth
70 */
71 virtual void Clear(const Rect& rect, bool enable_color, bool enable_alpha, bool enable_z,
72 u32 color, u32 z) = 0;
73
74 /**
75 * Set a specific render mode
76 * @param flag Render flags mode to enable
77 */
78 virtual void SetMode(kRenderMode flags) = 0;
79
80 /// Reset the full renderer API to the NULL state
81 virtual void ResetRenderState() = 0;
82
83 /// Restore the full renderer API state - As the game set it
84 virtual void RestoreRenderState() = 0;
85
86 /**
87 * Set the emulator window to use for renderer
88 * @param window EmuWindow handle to emulator window to use for rendering
89 */
90 virtual void SetWindow(EmuWindow* window) = 0;
91
92 /// Initialize the renderer
93 virtual void Init() = 0;
94
95 /// Shutdown the renderer
96 virtual void ShutDown() = 0;
97
98 /// Converts EFB rectangle coordinates to renderer rectangle coordinates
99 //static Rect EFBToRendererRect(const Rect& rect) {
100 // return Rect(rect.x0_, kGCEFBHeight - rect.y0_, rect.x1_, kGCEFBHeight - rect.y1_);
101 //}
102
103 // Getter/setter functions:
104 // ------------------------
105
106 f32 current_fps() const { return current_fps_; }
107
108 int current_frame() const { return current_frame_; }
109
110protected:
111 f32 current_fps_; ///< Current framerate, should be set by the renderer
112 int current_frame_; ///< Current frame, should be set by the renderer
113
114private:
115 DISALLOW_COPY_AND_ASSIGN(RendererBase);
116};
diff --git a/src/video_core/src/utils.cpp b/src/video_core/src/utils.cpp
new file mode 100644
index 000000000..a5e702f67
--- /dev/null
+++ b/src/video_core/src/utils.cpp
@@ -0,0 +1,66 @@
1/**
2 * Copyright (C) 2005-2012 Gekko Emulator
3 *
4 * @file utils.cpp
5 * @author ShizZy <shizzy247@gmail.com>
6 * @date 2012-12-28
7 * @brief Utility functions (in general, not related to emulation) useful for video core
8 *
9 * @section LICENSE
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of
13 * the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details at
19 * http://www.gnu.org/copyleft/gpl.html
20 *
21 * Official project repository can be found at:
22 * http://code.google.com/p/gekko-gc-emu/
23 */
24
25#include <stdio.h>
26#include <string.h>
27
28#include "utils.h"
29
30namespace VideoCore {
31
32/**
33 * Dumps a texture to TGA
34 * @param filename String filename to dump texture to
35 * @param width Width of texture in pixels
36 * @param height Height of texture in pixels
37 * @param raw_data Raw RGBA8 texture data to dump
38 * @todo This should be moved to some general purpose/common code
39 */
40void DumpTGA(std::string filename, int width, int height, u8* raw_data) {
41 TGAHeader hdr;
42 FILE* fout;
43 u8 r, g, b;
44
45 memset(&hdr, 0, sizeof(hdr));
46 hdr.datatypecode = 2; // uncompressed RGB
47 hdr.bitsperpixel = 24; // 24 bpp
48 hdr.width = width;
49 hdr.height = height;
50
51 fout = fopen(filename.c_str(), "wb");
52 fwrite(&hdr, sizeof(TGAHeader), 1, fout);
53 for (int i = 0; i < height; i++) {
54 for (int j = 0; j < width; j++) {
55 r = raw_data[(4 * (i * width)) + (4 * j) + 0];
56 g = raw_data[(4 * (i * width)) + (4 * j) + 1];
57 b = raw_data[(4 * (i * width)) + (4 * j) + 2];
58 putc(b, fout);
59 putc(g, fout);
60 putc(r, fout);
61 }
62 }
63 fclose(fout);
64}
65
66} // namespace
diff --git a/src/video_core/src/utils.h b/src/video_core/src/utils.h
new file mode 100644
index 000000000..2d7fa4a3a
--- /dev/null
+++ b/src/video_core/src/utils.h
@@ -0,0 +1,83 @@
1/**
2 * Copyright (C) 2005-2012 Gekko Emulator
3 *
4 * @file utils.h
5 * @author ShizZy <shizzy247@gmail.com>
6 * @date 2012-12-28
7 * @brief Utility functions (in general, not related to emulation) useful for video core
8 *
9 * @section LICENSE
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of
13 * the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details at
19 * http://www.gnu.org/copyleft/gpl.html
20 *
21 * Official project repository can be found at:
22 * http://code.google.com/p/gekko-gc-emu/
23 */
24
25#pragma once
26
27#include "common_types.h"
28#include <string>
29
30namespace FormatPrecision {
31
32/// Adjust RGBA8 color with RGBA6 precision
33static inline u32 rgba8_with_rgba6(u32 src) {
34 u32 color = src;
35 color &= 0xFCFCFCFC;
36 color |= (color >> 6) & 0x03030303;
37 return color;
38}
39
40/// Adjust RGBA8 color with RGB565 precision
41static inline u32 rgba8_with_rgb565(u32 src) {
42 u32 color = (src & 0xF8FCF8);
43 color |= (color >> 5) & 0x070007;
44 color |= (color >> 6) & 0x000300;
45 color |= 0xFF000000;
46 return color;
47}
48
49/// Adjust Z24 depth value with Z16 precision
50static inline u32 z24_with_z16(u32 src) {
51 return (src & 0xFFFF00) | (src >> 16);
52}
53
54} // namespace
55
56namespace VideoCore {
57
58/// Structure for the TGA texture format (for dumping)
59struct TGAHeader {
60 char idlength;
61 char colourmaptype;
62 char datatypecode;
63 short int colourmaporigin;
64 short int colourmaplength;
65 short int x_origin;
66 short int y_origin;
67 short width;
68 short height;
69 char bitsperpixel;
70 char imagedescriptor;
71};
72
73/**
74 * Dumps a texture to TGA
75 * @param filename String filename to dump texture to
76 * @param width Width of texture in pixels
77 * @param height Height of texture in pixels
78 * @param raw_data Raw RGBA8 texture data to dump
79 * @todo This should be moved to some general purpose/common code
80 */
81void DumpTGA(std::string filename, int width, int height, u8* raw_data);
82
83} // namespace
diff --git a/src/video_core/src/video_core.cpp b/src/video_core/src/video_core.cpp
new file mode 100644
index 000000000..8ad45c912
--- /dev/null
+++ b/src/video_core/src/video_core.cpp
@@ -0,0 +1,91 @@
1/**
2 * Copyright (C) 2014 Citra Emulator
3 *
4 * @file video_core.cpp
5 * @author bunnei
6 * @date 2014-04-05
7 * @brief Main module for new video core
8 *
9 * @section LICENSE
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of
13 * the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details at
19 * http://www.gnu.org/copyleft/gpl.html
20 *
21 * Official project repository can be found at:
22 * http://code.google.com/p/gekko-gc-emu/
23 */
24
25#include "common.h"
26#include "emu_window.h"
27#include "log.h"
28
29#include "core.h"
30#include "video_core.h"
31
32////////////////////////////////////////////////////////////////////////////////////////////////////
33// Video Core namespace
34
35namespace VideoCore {
36
37EmuWindow* g_emu_window = NULL; ///< Frontend emulator window
38RendererBase* g_renderer = NULL; ///< Renderer plugin
39int g_current_frame = 0;
40
41int VideoEntry(void*) {
42 if (g_emu_window == NULL) {
43 ERROR_LOG(VIDEO, "VideoCore::VideoEntry called without calling Init()!");
44 }
45 g_emu_window->MakeCurrent();
46 //for(;;) {
47 // gp::Fifo_DecodeCommand();
48 //}
49 return 0;
50}
51
52/// Start the video core
53void Start() {
54 if (g_emu_window == NULL) {
55 ERROR_LOG(VIDEO, "VideoCore::Start called without calling Init()!");
56 }
57 //if (common::g_config->enable_multicore()) {
58 // g_emu_window->DoneCurrent();
59 // g_video_thread = SDL_CreateThread(VideoEntry, NULL, NULL);
60 // if (g_video_thread == NULL) {
61 // LOG_ERROR(TVIDEO, "Unable to create thread: %s... Exiting\n", SDL_GetError());
62 // exit(1);
63 // }
64 //}
65}
66
67/// Initialize the video core
68void Init(EmuWindow* emu_window) {
69 g_emu_window = emu_window;
70 //g_renderer = new RendererGL3();
71 //g_renderer->SetWindow(g_emu_window);
72 //g_renderer->Init();
73
74 //gp::Fifo_Init();
75 //gp::VertexManager_Init();
76 //gp::VertexLoader_Init();
77 //gp::BP_Init();
78 //gp::CP_Init();
79 //gp::XF_Init();
80
81 g_current_frame = 0;
82
83 NOTICE_LOG(VIDEO, "initialized ok");
84}
85
86/// Shutdown the video core
87void Shutdown() {
88 //delete g_renderer;
89}
90
91} // namespace
diff --git a/src/video_core/src/video_core.h b/src/video_core/src/video_core.h
new file mode 100644
index 000000000..9b80d7715
--- /dev/null
+++ b/src/video_core/src/video_core.h
@@ -0,0 +1,48 @@
1/*!
2 * Copyright (C) 2014 Citra Emulator
3 *
4 * @file video_core.h
5 * @author bunnei
6 * @date 2014-04-05
7 * @brief Main module for new video core
8 *
9 * @section LICENSE
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of
13 * the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details at
19 * http://www.gnu.org/copyleft/gpl.html
20 *
21 * Official project repository can be found at:
22 * http://code.google.com/p/gekko-gc-emu/
23 */
24
25#pragma once
26
27#include "common.h"
28#include "emu_window.h"
29#include "renderer_base.h"
30
31////////////////////////////////////////////////////////////////////////////////////////////////////
32// Video Core namespace
33
34namespace VideoCore {
35
36extern RendererBase* g_renderer; ///< Renderer plugin
37extern int g_current_frame; ///< Current frame
38
39/// Start the video core
40void Start();
41
42/// Initialize the video core
43void Init(EmuWindow* emu_window);
44
45/// Shutdown the video core
46void ShutDown();
47
48} // namespace
diff --git a/src/video_core/video_core.vcxproj b/src/video_core/video_core.vcxproj
new file mode 100644
index 000000000..4a1429745
--- /dev/null
+++ b/src/video_core/video_core.vcxproj
@@ -0,0 +1,129 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 <ItemGroup Label="ProjectConfigurations">
4 <ProjectConfiguration Include="Debug|Win32">
5 <Configuration>Debug</Configuration>
6 <Platform>Win32</Platform>
7 </ProjectConfiguration>
8 <ProjectConfiguration Include="Debug|x64">
9 <Configuration>Debug</Configuration>
10 <Platform>x64</Platform>
11 </ProjectConfiguration>
12 <ProjectConfiguration Include="Release|Win32">
13 <Configuration>Release</Configuration>
14 <Platform>Win32</Platform>
15 </ProjectConfiguration>
16 <ProjectConfiguration Include="Release|x64">
17 <Configuration>Release</Configuration>
18 <Platform>x64</Platform>
19 </ProjectConfiguration>
20 </ItemGroup>
21 <ItemGroup>
22 <ClCompile Include="src\utils.cpp" />
23 <ClCompile Include="src\video_core.cpp" />
24 </ItemGroup>
25 <ItemGroup>
26 <ClInclude Include="src\renderer_base.h" />
27 <ClInclude Include="src\utils.h" />
28 <ClInclude Include="src\video_core.h" />
29 </ItemGroup>
30 <ItemGroup>
31 <Text Include="CMakeLists.txt" />
32 </ItemGroup>
33 <PropertyGroup Label="Globals">
34 <ProjectGuid>{6678D1A3-33A6-48A9-878B-48E5D2903D27}</ProjectGuid>
35 <RootNamespace>input_common</RootNamespace>
36 <ProjectName>video_core</ProjectName>
37 </PropertyGroup>
38 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
39 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
40 <ConfigurationType>StaticLibrary</ConfigurationType>
41 <UseDebugLibraries>true</UseDebugLibraries>
42 <PlatformToolset>v120</PlatformToolset>
43 </PropertyGroup>
44 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
45 <ConfigurationType>StaticLibrary</ConfigurationType>
46 <UseDebugLibraries>true</UseDebugLibraries>
47 <PlatformToolset>v120</PlatformToolset>
48 </PropertyGroup>
49 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
50 <ConfigurationType>StaticLibrary</ConfigurationType>
51 <UseDebugLibraries>false</UseDebugLibraries>
52 <PlatformToolset>v120</PlatformToolset>
53 </PropertyGroup>
54 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
55 <ConfigurationType>StaticLibrary</ConfigurationType>
56 <UseDebugLibraries>false</UseDebugLibraries>
57 <PlatformToolset>v120</PlatformToolset>
58 </PropertyGroup>
59 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
60 <ImportGroup Label="ExtensionSettings">
61 </ImportGroup>
62 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
63 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
64 <Import Project="..\..\vsprops\Base.props" />
65 <Import Project="..\..\vsprops\code_generation_debug.props" />
66 <Import Project="..\..\vsprops\optimization_debug.props" />
67 <Import Project="..\..\vsprops\externals.props" />
68 </ImportGroup>
69 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
70 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
71 <Import Project="..\..\vsprops\Base.props" />
72 <Import Project="..\..\vsprops\code_generation_debug.props" />
73 <Import Project="..\..\vsprops\optimization_debug.props" />
74 <Import Project="..\..\vsprops\externals.props" />
75 </ImportGroup>
76 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
77 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
78 <Import Project="..\..\vsprops\Base.props" />
79 <Import Project="..\..\vsprops\code_generation_release.props" />
80 <Import Project="..\..\vsprops\optimization_release.props" />
81 <Import Project="..\..\vsprops\externals.props" />
82 </ImportGroup>
83 <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
84 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
85 <Import Project="..\..\vsprops\Base.props" />
86 <Import Project="..\..\vsprops\code_generation_release.props" />
87 <Import Project="..\..\vsprops\optimization_release.props" />
88 <Import Project="..\..\vsprops\externals.props" />
89 </ImportGroup>
90 <PropertyGroup Label="UserMacros" />
91 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
92 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
93 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
94 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
95 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
96 <ClCompile />
97 <Link>
98 <GenerateDebugInformation>true</GenerateDebugInformation>
99 </Link>
100 </ItemDefinitionGroup>
101 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
102 <ClCompile />
103 <Link>
104 <GenerateDebugInformation>true</GenerateDebugInformation>
105 </Link>
106 </ItemDefinitionGroup>
107 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
108 <ClCompile />
109 <Link>
110 <GenerateDebugInformation>true</GenerateDebugInformation>
111 <EnableCOMDATFolding>true</EnableCOMDATFolding>
112 <OptimizeReferences>true</OptimizeReferences>
113 </Link>
114 <ClCompile />
115 <ClCompile />
116 <ClCompile />
117 </ItemDefinitionGroup>
118 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
119 <ClCompile />
120 <Link>
121 <GenerateDebugInformation>true</GenerateDebugInformation>
122 <EnableCOMDATFolding>true</EnableCOMDATFolding>
123 <OptimizeReferences>true</OptimizeReferences>
124 </Link>
125 </ItemDefinitionGroup>
126 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
127 <ImportGroup Label="ExtensionTargets">
128 </ImportGroup>
129</Project> \ No newline at end of file
diff --git a/src/video_core/video_core.vcxproj.filters b/src/video_core/video_core.vcxproj.filters
new file mode 100644
index 000000000..2a84b7edf
--- /dev/null
+++ b/src/video_core/video_core.vcxproj.filters
@@ -0,0 +1,15 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 <ItemGroup>
4 <ClCompile Include="src\video_core.cpp" />
5 <ClCompile Include="src\utils.cpp" />
6 </ItemGroup>
7 <ItemGroup>
8 <ClInclude Include="src\renderer_base.h" />
9 <ClInclude Include="src\video_core.h" />
10 <ClInclude Include="src\utils.h" />
11 </ItemGroup>
12 <ItemGroup>
13 <Text Include="CMakeLists.txt" />
14 </ItemGroup>
15</Project> \ No newline at end of file