Skip to content

Commit a8dee69

Browse files
committed
Added the update to the Color tutorial for the modern OpenGL 4 specifications, building off the First OpenGL Program tutorial.
1 parent 787fdb8 commit a8dee69

File tree

30 files changed

+24770
-702
lines changed

30 files changed

+24770
-702
lines changed

OpenGL/Color/Color.exe

355 KB
Binary file not shown.

OpenGL/Color/Color.sln

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
1+
12
Microsoft Visual Studio Solution File, Format Version 12.00
23
# Visual Studio 2013
3-
VisualStudioVersion = 12.0.21005.1
4+
VisualStudioVersion = 12.0.30723.0
45
MinimumVisualStudioVersion = 10.0.40219.1
5-
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Color", "Color.vcxproj", "{CCFEA5AC-4BE6-4A65-8803-A7B534413A66}"
6+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Color", "Color.vcxproj", "{E7A7FA46-6B2D-4B68-8077-4EDEA614B8E4}"
67
EndProject
78
Global
89
GlobalSection(SolutionConfigurationPlatforms) = preSolution
910
Debug|Win32 = Debug|Win32
1011
Release|Win32 = Release|Win32
1112
EndGlobalSection
1213
GlobalSection(ProjectConfigurationPlatforms) = postSolution
13-
{CCFEA5AC-4BE6-4A65-8803-A7B534413A66}.Debug|Win32.ActiveCfg = Debug|Win32
14-
{CCFEA5AC-4BE6-4A65-8803-A7B534413A66}.Debug|Win32.Build.0 = Debug|Win32
15-
{CCFEA5AC-4BE6-4A65-8803-A7B534413A66}.Release|Win32.ActiveCfg = Release|Win32
16-
{CCFEA5AC-4BE6-4A65-8803-A7B534413A66}.Release|Win32.Build.0 = Release|Win32
14+
{E7A7FA46-6B2D-4B68-8077-4EDEA614B8E4}.Debug|Win32.ActiveCfg = Debug|Win32
15+
{E7A7FA46-6B2D-4B68-8077-4EDEA614B8E4}.Debug|Win32.Build.0 = Debug|Win32
16+
{E7A7FA46-6B2D-4B68-8077-4EDEA614B8E4}.Release|Win32.ActiveCfg = Release|Win32
17+
{E7A7FA46-6B2D-4B68-8077-4EDEA614B8E4}.Release|Win32.Build.0 = Release|Win32
1718
EndGlobalSection
1819
GlobalSection(SolutionProperties) = preSolution
1920
HideSolutionNode = FALSE

OpenGL/Color/Color.vcxproj

Lines changed: 58 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -10,129 +10,100 @@
1010
<Platform>Win32</Platform>
1111
</ProjectConfiguration>
1212
</ItemGroup>
13+
<ItemGroup>
14+
<ClInclude Include="Headers\Main.h" />
15+
<ClInclude Include="Headers\Model.h" />
16+
<ClInclude Include="Headers\Shader.h" />
17+
<ClInclude Include="Headers\WindowManager.h" />
18+
</ItemGroup>
19+
<ItemGroup>
20+
<None Include="Shaders\Shader.fragment" />
21+
<None Include="Shaders\Shader.vertex" />
22+
</ItemGroup>
23+
<ItemGroup>
24+
<ClCompile Include="Source\Main.cpp" />
25+
<ClCompile Include="Source\Model.cpp" />
26+
<ClCompile Include="Source\Shader.cpp" />
27+
<ClCompile Include="Source\WindowManager.cpp" />
28+
</ItemGroup>
1329
<PropertyGroup Label="Globals">
14-
<ProjectGuid>{CCFEA5AC-4BE6-4A65-8803-A7B534413A66}</ProjectGuid>
30+
<ProjectGuid>{E7A7FA46-6B2D-4B68-8077-4EDEA614B8E4}</ProjectGuid>
31+
<Keyword>Win32Proj</Keyword>
32+
<RootNamespace>Color</RootNamespace>
1533
</PropertyGroup>
1634
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
17-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
35+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
1836
<ConfigurationType>Application</ConfigurationType>
19-
<UseOfMfc>false</UseOfMfc>
20-
<CharacterSet>MultiByte</CharacterSet>
37+
<UseDebugLibraries>true</UseDebugLibraries>
2138
<PlatformToolset>v120</PlatformToolset>
39+
<CharacterSet>Unicode</CharacterSet>
2240
</PropertyGroup>
23-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
41+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
2442
<ConfigurationType>Application</ConfigurationType>
25-
<UseOfMfc>false</UseOfMfc>
26-
<CharacterSet>MultiByte</CharacterSet>
43+
<UseDebugLibraries>false</UseDebugLibraries>
2744
<PlatformToolset>v120</PlatformToolset>
45+
<WholeProgramOptimization>true</WholeProgramOptimization>
46+
<CharacterSet>Unicode</CharacterSet>
2847
</PropertyGroup>
2948
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
3049
<ImportGroup Label="ExtensionSettings">
3150
</ImportGroup>
32-
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
51+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
3352
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
34-
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
3553
</ImportGroup>
36-
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
54+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
3755
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
38-
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
3956
</ImportGroup>
4057
<PropertyGroup Label="UserMacros" />
41-
<PropertyGroup>
42-
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
43-
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</OutDir>
44-
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</IntDir>
45-
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
46-
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</OutDir>
47-
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</IntDir>
48-
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
49-
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
50-
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
51-
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
52-
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
53-
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
54-
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
58+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
59+
<LinkIncremental>true</LinkIncremental>
60+
<IncludePath>C:\GL\include;$(IncludePath)</IncludePath>
61+
<LibraryPath>C:\GL\lib;$(LibraryPath)</LibraryPath>
62+
</PropertyGroup>
63+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
64+
<LinkIncremental>false</LinkIncremental>
5565
</PropertyGroup>
5666
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
57-
<Midl>
58-
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
59-
<MkTypLibCompatible>true</MkTypLibCompatible>
60-
<SuppressStartupBanner>true</SuppressStartupBanner>
61-
<TargetEnvironment>Win32</TargetEnvironment>
62-
<TypeLibraryName>.\Debug/Color.tlb</TypeLibraryName>
63-
</Midl>
6467
<ClCompile>
65-
<Optimization>Disabled</Optimization>
66-
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
67-
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
68-
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
6968
<PrecompiledHeader>
7069
</PrecompiledHeader>
71-
<PrecompiledHeaderOutputFile>.\Debug/Color.pch</PrecompiledHeaderOutputFile>
72-
<AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
73-
<ObjectFileName>.\Debug/</ObjectFileName>
74-
<ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
7570
<WarningLevel>Level3</WarningLevel>
76-
<SuppressStartupBanner>true</SuppressStartupBanner>
77-
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
71+
<Optimization>Disabled</Optimization>
72+
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;GLEW_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
73+
<AdditionalIncludeDirectories>$(ProjectDir)Lib/glm/;$(ProjectDir)Lib/glfw3/Include;$(ProjectDir)Lib/glew/Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
7874
</ClCompile>
79-
<ResourceCompile>
80-
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
81-
<Culture>0x0409</Culture>
82-
</ResourceCompile>
8375
<Link>
84-
<AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
85-
<AdditionalDependencies>opengl32.lib;glu32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
86-
<OutputFile>.\Debug/Color.exe</OutputFile>
87-
<SuppressStartupBanner>true</SuppressStartupBanner>
76+
<SubSystem>Console</SubSystem>
8877
<GenerateDebugInformation>true</GenerateDebugInformation>
89-
<ProgramDatabaseFile>.\Debug/Color.pdb</ProgramDatabaseFile>
90-
<SubSystem>Windows</SubSystem>
78+
<AdditionalDependencies>glfw3.lib;opengl32.lib;glu32.lib;glew32s.lib;%(AdditionalDependencies)</AdditionalDependencies>
79+
<IgnoreAllDefaultLibraries>
80+
</IgnoreAllDefaultLibraries>
81+
<AdditionalLibraryDirectories>$(ProjectDir)Lib/glfw3/Lib;$(ProjectDir)Lib/glew/Lib/Win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
82+
<ShowProgress>LinkVerboseLib</ShowProgress>
83+
<IgnoreSpecificDefaultLibraries>libc.lib;libcmt.lib;msvcrt.lib;libcd.lib;libcmtd.lib</IgnoreSpecificDefaultLibraries>
9184
</Link>
9285
</ItemDefinitionGroup>
9386
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
94-
<Midl>
95-
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
96-
<MkTypLibCompatible>true</MkTypLibCompatible>
97-
<SuppressStartupBanner>true</SuppressStartupBanner>
98-
<TargetEnvironment>Win32</TargetEnvironment>
99-
<TypeLibraryName>.\Release/Color.tlb</TypeLibraryName>
100-
</Midl>
10187
<ClCompile>
102-
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
103-
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
104-
<StringPooling>true</StringPooling>
105-
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
106-
<FunctionLevelLinking>true</FunctionLevelLinking>
88+
<WarningLevel>Level3</WarningLevel>
10789
<PrecompiledHeader>
10890
</PrecompiledHeader>
109-
<PrecompiledHeaderOutputFile>.\Release/Color.pch</PrecompiledHeaderOutputFile>
110-
<AssemblerListingLocation>.\Release/</AssemblerListingLocation>
111-
<ObjectFileName>.\Release/</ObjectFileName>
112-
<ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
113-
<WarningLevel>Level3</WarningLevel>
114-
<SuppressStartupBanner>true</SuppressStartupBanner>
91+
<Optimization>MaxSpeed</Optimization>
92+
<FunctionLevelLinking>true</FunctionLevelLinking>
93+
<IntrinsicFunctions>true</IntrinsicFunctions>
94+
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;GLEW_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
95+
<AdditionalIncludeDirectories>$(ProjectDir)Lib/glm/;$(ProjectDir)Lib/glfw3/Include;$(ProjectDir)Lib/glew/Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
11596
</ClCompile>
116-
<ResourceCompile>
117-
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
118-
<Culture>0x0409</Culture>
119-
</ResourceCompile>
12097
<Link>
121-
<AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
122-
<AdditionalDependencies>odbc32.lib;odbccp32.lib;opengl32.lib;glu32.lib;%(AdditionalDependencies)</AdditionalDependencies>
123-
<OutputFile>.\Release/Color.exe</OutputFile>
124-
<SuppressStartupBanner>true</SuppressStartupBanner>
125-
<ProgramDatabaseFile>.\Release/Color.pdb</ProgramDatabaseFile>
126-
<SubSystem>Windows</SubSystem>
98+
<SubSystem>Console</SubSystem>
99+
<GenerateDebugInformation>true</GenerateDebugInformation>
100+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
101+
<OptimizeReferences>true</OptimizeReferences>
102+
<AdditionalDependencies>glfw3.lib;opengl32.lib;glu32.lib;glew32s.lib;%(AdditionalDependencies)</AdditionalDependencies>
103+
<IgnoreSpecificDefaultLibraries>libc.lib;libcmt.lib;msvcrt.lib;libcd.lib;libcmtd.lib</IgnoreSpecificDefaultLibraries>
104+
<AdditionalLibraryDirectories>$(ProjectDir)Lib/glfw3/Lib;$(ProjectDir)Lib/glew/Lib/Win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
127105
</Link>
128106
</ItemDefinitionGroup>
129-
<ItemGroup>
130-
<ClCompile Include="Init.cpp" />
131-
<ClCompile Include="Main.cpp" />
132-
</ItemGroup>
133-
<ItemGroup>
134-
<ClInclude Include="main.h" />
135-
</ItemGroup>
136107
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
137108
<ImportGroup Label="ExtensionTargets">
138109
</ImportGroup>

OpenGL/Color/Color.vcxproj.filters

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,55 @@
22
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<ItemGroup>
44
<Filter Include="Source Files">
5-
<UniqueIdentifier>{77411394-6205-4acb-9c19-e9cce16863c3}</UniqueIdentifier>
6-
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
5+
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
6+
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
77
</Filter>
88
<Filter Include="Header Files">
9-
<UniqueIdentifier>{2e4bacd3-55a6-4dfc-a31f-54ea14eff4b2}</UniqueIdentifier>
10-
<Extensions>h;hpp;hxx;hm;inl</Extensions>
9+
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
10+
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
1111
</Filter>
1212
<Filter Include="Resource Files">
13-
<UniqueIdentifier>{c53ec5c1-083a-4f0a-a956-fa4e3ab74954}</UniqueIdentifier>
14-
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
13+
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
14+
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
1515
</Filter>
16+
<Filter Include="Shaders">
17+
<UniqueIdentifier>{0ae92881-90cc-4767-b850-04f1b53a7b1a}</UniqueIdentifier>
18+
</Filter>
19+
</ItemGroup>
20+
<ItemGroup>
21+
<ClInclude Include="Headers\Model.h">
22+
<Filter>Header Files</Filter>
23+
</ClInclude>
24+
<ClInclude Include="Headers\WindowManager.h">
25+
<Filter>Header Files</Filter>
26+
</ClInclude>
27+
<ClInclude Include="Headers\Main.h">
28+
<Filter>Header Files</Filter>
29+
</ClInclude>
30+
<ClInclude Include="Headers\Shader.h">
31+
<Filter>Header Files</Filter>
32+
</ClInclude>
1633
</ItemGroup>
1734
<ItemGroup>
18-
<ClCompile Include="Init.cpp">
35+
<None Include="Shaders\Shader.fragment">
36+
<Filter>Shaders</Filter>
37+
</None>
38+
<None Include="Shaders\Shader.vertex">
39+
<Filter>Shaders</Filter>
40+
</None>
41+
</ItemGroup>
42+
<ItemGroup>
43+
<ClCompile Include="Source\Main.cpp">
1944
<Filter>Source Files</Filter>
2045
</ClCompile>
21-
<ClCompile Include="Main.cpp">
46+
<ClCompile Include="Source\Model.cpp">
47+
<Filter>Source Files</Filter>
48+
</ClCompile>
49+
<ClCompile Include="Source\WindowManager.cpp">
50+
<Filter>Source Files</Filter>
51+
</ClCompile>
52+
<ClCompile Include="Source\Shader.cpp">
2253
<Filter>Source Files</Filter>
2354
</ClCompile>
24-
</ItemGroup>
25-
<ItemGroup>
26-
<ClInclude Include="main.h">
27-
<Filter>Header Files</Filter>
28-
</ClInclude>
2955
</ItemGroup>
3056
</Project>

OpenGL/Color/Headers/Main.h

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#ifndef _Main_H
2+
#define _Main_H
3+
4+
#include "WindowManager.h" // Include our WindowManager to handle the cross-platform window
5+
#include "Model.h" // Include our Model class to draw the setup and draw the triangle
6+
7+
// This is our main application class that handles orchestrating the init, game loop and cleanup
8+
class GLApplication
9+
{
10+
public:
11+
12+
// This is the main function for our application, which is called by the main() function
13+
// in the WindowManager.cpp file. This helps abstract out the environments entry point.
14+
int GLMain();
15+
16+
// This initializes the application
17+
void Initialize();
18+
19+
// This runs the game loop and only quits when the user hits Escape or closes the window
20+
void GameLoop();
21+
22+
// This cleans up the application and tells other objects to also cleanup
23+
void Destroy();
24+
25+
private:
26+
27+
// Our global window manager to create the window and manage input, which should be
28+
// environment agnostic. Our main application shouldn't know if it's Win32 or GLFW.
29+
WindowManager WindowManager;
30+
};
31+
32+
#endif
33+
34+
35+
/////////////////////////////////////////////////////////////////////////////////
36+
//
37+
// * QUICK NOTES *
38+
//
39+
// In this file we define our main GLApplication class which runs the tutorial.
40+
// For the initial tutorial instructions please always view the Main.cpp first.
41+
//
42+
//
43+
// © 2000-2014 GameTutorials

0 commit comments

Comments
 (0)