asd
This commit is contained in:
BIN
OpenGL/Debug/Application.obj
Normal file
BIN
OpenGL/Debug/Application.obj
Normal file
Binary file not shown.
11
OpenGL/Debug/OpenGL.exe.recipe
Normal file
11
OpenGL/Debug/OpenGL.exe.recipe
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project>
|
||||||
|
<ProjectOutputs>
|
||||||
|
<ProjectOutput>
|
||||||
|
<FullPath>D:\cpp\OpenGL\Debug\OpenGL.exe</FullPath>
|
||||||
|
</ProjectOutput>
|
||||||
|
</ProjectOutputs>
|
||||||
|
<ContentFiles />
|
||||||
|
<SatelliteDlls />
|
||||||
|
<NonRecipeFileRefs />
|
||||||
|
</Project>
|
||||||
BIN
OpenGL/Debug/OpenGL.ilk
Normal file
BIN
OpenGL/Debug/OpenGL.ilk
Normal file
Binary file not shown.
5
OpenGL/Debug/OpenGL.log
Normal file
5
OpenGL/Debug/OpenGL.log
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
Application.cpp
|
||||||
|
LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
|
||||||
|
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
|
||||||
|
glew32s.lib(glew.obj) : warning LNK4099: PDB 'vc120.pdb' was not found with 'glew32s.lib(glew.obj)' or at 'D:\cpp\OpenGL\Debug\vc120.pdb'; linking object as if no debug info
|
||||||
|
OpenGL.vcxproj -> D:\cpp\OpenGL\Debug\OpenGL.exe
|
||||||
BIN
OpenGL/Debug/OpenGL.tlog/CL.command.1.tlog
Normal file
BIN
OpenGL/Debug/OpenGL.tlog/CL.command.1.tlog
Normal file
Binary file not shown.
BIN
OpenGL/Debug/OpenGL.tlog/CL.read.1.tlog
Normal file
BIN
OpenGL/Debug/OpenGL.tlog/CL.read.1.tlog
Normal file
Binary file not shown.
BIN
OpenGL/Debug/OpenGL.tlog/CL.write.1.tlog
Normal file
BIN
OpenGL/Debug/OpenGL.tlog/CL.write.1.tlog
Normal file
Binary file not shown.
2
OpenGL/Debug/OpenGL.tlog/OpenGL.lastbuildstate
Normal file
2
OpenGL/Debug/OpenGL.tlog/OpenGL.lastbuildstate
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
PlatformToolSet=v143:VCToolArchitecture=Native32Bit:VCToolsVersion=14.31.31103:TargetPlatformVersion=10.0.19041.0:
|
||||||
|
Debug|Win32|D:\cpp\OpenGL\|
|
||||||
BIN
OpenGL/Debug/OpenGL.tlog/link.command.1.tlog
Normal file
BIN
OpenGL/Debug/OpenGL.tlog/link.command.1.tlog
Normal file
Binary file not shown.
BIN
OpenGL/Debug/OpenGL.tlog/link.read.1.tlog
Normal file
BIN
OpenGL/Debug/OpenGL.tlog/link.read.1.tlog
Normal file
Binary file not shown.
BIN
OpenGL/Debug/OpenGL.tlog/link.write.1.tlog
Normal file
BIN
OpenGL/Debug/OpenGL.tlog/link.write.1.tlog
Normal file
Binary file not shown.
BIN
OpenGL/Debug/vc143.idb
Normal file
BIN
OpenGL/Debug/vc143.idb
Normal file
Binary file not shown.
BIN
OpenGL/Debug/vc143.pdb
Normal file
BIN
OpenGL/Debug/vc143.pdb
Normal file
Binary file not shown.
162
OpenGL/OpenGL.vcxproj
Normal file
162
OpenGL/OpenGL.vcxproj
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<VCProjectVersion>16.0</VCProjectVersion>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<ProjectGuid>{79d31382-6947-4aaf-aea2-3838e3bdd2d4}</ProjectGuid>
|
||||||
|
<RootNamespace>OpenGL</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="Shared">
|
||||||
|
</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" />
|
||||||
|
</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" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>GLEW_STATIC;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)Dependencies\GLFW\include;$(SolutionDir)Dependencies\GLEW\include</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalLibraryDirectories>$(SolutionDir)Dependencies\GLEW\lib\Release\Win32;$(SolutionDir)Dependencies\GLFW\lib-vc2022</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalDependencies>glew32s.lib;glfw3.lib;opengl32.lib;User32.lib;Gdi32.lib;Shell32.lib</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>GLEW_STATIC;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)Dependencies\GLFW\include;$(SolutionDir)Dependencies\GLEW\include</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalLibraryDirectories>$(SolutionDir)Dependencies\GLEW\lib\Release\Win32;$(SolutionDir)Dependencies\GLFW\lib-vc2022</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalDependencies>glew32s.lib;glfw3.lib;opengl32.lib;User32.lib;Gdi32.lib;Shell32.lib</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)Dependencies\GLFW\include</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalLibraryDirectories>$(SolutionDir)Dependencies\GLFW\lib-vc2022</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalDependencies>glfw3.lib</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)Dependencies\GLFW\include</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalLibraryDirectories>$(SolutionDir)Dependencies\GLFW\lib-vc2022</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalDependencies>glfw3.lib</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="src\Application.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="res\shaders\Basic.shader" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
25
OpenGL/OpenGL.vcxproj.filters
Normal file
25
OpenGL/OpenGL.vcxproj.filters
Normal 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>
|
||||||
|
<Filter Include="Source Files">
|
||||||
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
|
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Header Files">
|
||||||
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
|
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Resource Files">
|
||||||
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="src\Application.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="res\shaders\Basic.shader" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
6
OpenGL/OpenGL.vcxproj.user
Normal file
6
OpenGL/OpenGL.vcxproj.user
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ShowAllFiles>true</ShowAllFiles>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
19
OpenGL/res/shaders/Basic.shader
Normal file
19
OpenGL/res/shaders/Basic.shader
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
#shader vertex
|
||||||
|
#version 330 core
|
||||||
|
|
||||||
|
layout(location = 0) in vec4 position;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_Position = position;
|
||||||
|
};
|
||||||
|
|
||||||
|
#shader fragment
|
||||||
|
#version 330 core
|
||||||
|
|
||||||
|
layout(location = 0) out vec4 color;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
color = vec4(1, 1, 0, 1.0);
|
||||||
|
};
|
||||||
180
OpenGL/src/Application.cpp
Normal file
180
OpenGL/src/Application.cpp
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
#include <GL/glew.h>
|
||||||
|
#include <GLFW/glfw3.h>
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
#include <string>
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
|
struct ShaderProgramSource
|
||||||
|
{
|
||||||
|
std::string VertexSource;
|
||||||
|
std::string FragmentSource;
|
||||||
|
};
|
||||||
|
|
||||||
|
static ShaderProgramSource ParseShader(const std::string& filePath)
|
||||||
|
{
|
||||||
|
std::ifstream stream(filePath);
|
||||||
|
|
||||||
|
enum class ShaderType
|
||||||
|
{
|
||||||
|
NONE = -1, VERTEX = 0, FRAGMENT = 1
|
||||||
|
};
|
||||||
|
|
||||||
|
std::string line;
|
||||||
|
std::stringstream ss[2];
|
||||||
|
ShaderType type = ShaderType::NONE;
|
||||||
|
while (getline(stream, line))
|
||||||
|
{
|
||||||
|
if (line.find("#shader") != std::string::npos)
|
||||||
|
{
|
||||||
|
if (line.find("vertex") != std::string::npos)
|
||||||
|
type = ShaderType::VERTEX;
|
||||||
|
else if (line.find("fragment") != std::string::npos)
|
||||||
|
type = ShaderType::FRAGMENT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ss[(int)type] << line << '\n';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return { ss[0].str(), ss[1].str() };
|
||||||
|
}
|
||||||
|
|
||||||
|
static int CompileShader(unsigned int type, const std::string& source)
|
||||||
|
{
|
||||||
|
unsigned int id = glCreateShader(type);
|
||||||
|
const char* src = source.c_str();
|
||||||
|
glShaderSource(id, 1, &src, nullptr);
|
||||||
|
glCompileShader(id);
|
||||||
|
|
||||||
|
int result;
|
||||||
|
glGetShaderiv(id, GL_COMPILE_STATUS, &result);
|
||||||
|
|
||||||
|
if (result == GL_FALSE)
|
||||||
|
{
|
||||||
|
int length;
|
||||||
|
glGetShaderiv(id, GL_INFO_LOG_LENGTH, &length);
|
||||||
|
char* message = (char*)alloca(length * sizeof(char));
|
||||||
|
glGetShaderInfoLog(id, length, &length, message);
|
||||||
|
std::cout << "FAILED TO COMPILE " << (type == GL_VERTEX_SHADER ? "vertex" : "fragment") << "SHADER" << std::endl;
|
||||||
|
std::cout << message << std::endl;
|
||||||
|
glDeleteShader(id);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
static unsigned int CreateShader(const std::string& vertexShader, const std::string& fragmentShader)
|
||||||
|
{
|
||||||
|
unsigned int program = glCreateProgram();
|
||||||
|
unsigned int vs = CompileShader(GL_VERTEX_SHADER, vertexShader);
|
||||||
|
unsigned int fs = CompileShader(GL_FRAGMENT_SHADER, fragmentShader);
|
||||||
|
|
||||||
|
glAttachShader(program, vs);
|
||||||
|
glAttachShader(program, fs);
|
||||||
|
glLinkProgram(program);
|
||||||
|
glValidateProgram(program);
|
||||||
|
|
||||||
|
glDeleteShader(vs);
|
||||||
|
glDeleteShader(fs);
|
||||||
|
|
||||||
|
return program;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
/* Initialize the library */
|
||||||
|
if (!glfwInit())
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
/* Create a windowed mode window and its OpenGL context */
|
||||||
|
GLFWwindow* window = glfwCreateWindow(640, 480, "Hello World", nullptr, nullptr);
|
||||||
|
|
||||||
|
|
||||||
|
if (!window)
|
||||||
|
{
|
||||||
|
glfwTerminate();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Make the window's context current */
|
||||||
|
glfwMakeContextCurrent(window);
|
||||||
|
|
||||||
|
|
||||||
|
if (glewInit() != GLEW_OK)
|
||||||
|
std::cout << "ERROR" << std::endl;
|
||||||
|
|
||||||
|
std::cout << glGetString(GL_VERSION) << std::endl;
|
||||||
|
|
||||||
|
constexpr float triforcePos[] = {
|
||||||
|
-1.0f, -1.0f, //0
|
||||||
|
-0.5f, 0.0f, //1 --
|
||||||
|
0.0f, -1.0f, //2
|
||||||
|
0.0f, 1.0f, //3
|
||||||
|
0.5f, 0.0f, //4 --
|
||||||
|
1.0f, -1.0f //5
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned int triforceInd[] = {
|
||||||
|
0, 1, 2,
|
||||||
|
2, 4, 5,
|
||||||
|
1, 3, 4
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
constexpr float positions[] = {
|
||||||
|
-0.5f, -0.5f,
|
||||||
|
0.5f, -0.5f,
|
||||||
|
0.5f, 0.5f,
|
||||||
|
-0.5f, 0.5f,
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned int indices[] = {
|
||||||
|
0, 1, 2,
|
||||||
|
2, 3, 0
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned int buffer;
|
||||||
|
glGenBuffers(1, &buffer);
|
||||||
|
glBindBuffer(GL_ARRAY_BUFFER, buffer);
|
||||||
|
glBufferData(GL_ARRAY_BUFFER, 6 * 2 * sizeof(float), triforcePos, GL_STATIC_DRAW);
|
||||||
|
|
||||||
|
glEnableVertexAttribArray(0);
|
||||||
|
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, 0);
|
||||||
|
|
||||||
|
unsigned int ibo;
|
||||||
|
glGenBuffers(1, &ibo);
|
||||||
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);
|
||||||
|
glBufferData(GL_ELEMENT_ARRAY_BUFFER, 3 * 3 * sizeof(unsigned int), triforceInd, GL_STATIC_DRAW);
|
||||||
|
|
||||||
|
ShaderProgramSource source = ParseShader("res/shaders/Basic.shader");
|
||||||
|
|
||||||
|
unsigned int shader = CreateShader(source.VertexSource, source.FragmentSource);
|
||||||
|
glUseProgram(shader);
|
||||||
|
|
||||||
|
/* Loop until the user closes the window */
|
||||||
|
while (!glfwWindowShouldClose(window))
|
||||||
|
{
|
||||||
|
/* Render here */
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
|
||||||
|
glDrawElements(GL_TRIANGLES, 9, GL_UNSIGNED_INT, nullptr);
|
||||||
|
|
||||||
|
|
||||||
|
/* Swap front and back buffers */
|
||||||
|
glfwSwapBuffers(window);
|
||||||
|
|
||||||
|
/* Poll for and process events */
|
||||||
|
glfwPollEvents();
|
||||||
|
}
|
||||||
|
|
||||||
|
glDeleteProgram(shader);
|
||||||
|
|
||||||
|
glfwTerminate();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
BIN
OpenGL/x64/Debug/Application.obj
Normal file
BIN
OpenGL/x64/Debug/Application.obj
Normal file
Binary file not shown.
11
OpenGL/x64/Debug/OpenGL.exe.recipe
Normal file
11
OpenGL/x64/Debug/OpenGL.exe.recipe
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project>
|
||||||
|
<ProjectOutputs>
|
||||||
|
<ProjectOutput>
|
||||||
|
<FullPath>D:\cpp\OpenGL\x64\Debug\OpenGL.exe</FullPath>
|
||||||
|
</ProjectOutput>
|
||||||
|
</ProjectOutputs>
|
||||||
|
<ContentFiles />
|
||||||
|
<SatelliteDlls />
|
||||||
|
<NonRecipeFileRefs />
|
||||||
|
</Project>
|
||||||
11
OpenGL/x64/Debug/OpenGL.log
Normal file
11
OpenGL/x64/Debug/OpenGL.log
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Application.cpp
|
||||||
|
Application.obj : error LNK2019: unresolved external symbol __imp_glClear referenced in function main
|
||||||
|
Application.obj : error LNK2019: unresolved external symbol glfwInit referenced in function main
|
||||||
|
Application.obj : error LNK2019: unresolved external symbol glfwTerminate referenced in function main
|
||||||
|
Application.obj : error LNK2019: unresolved external symbol glfwCreateWindow referenced in function main
|
||||||
|
Application.obj : error LNK2019: unresolved external symbol glfwWindowShouldClose referenced in function main
|
||||||
|
Application.obj : error LNK2019: unresolved external symbol glfwPollEvents referenced in function main
|
||||||
|
Application.obj : error LNK2019: unresolved external symbol glfwMakeContextCurrent referenced in function main
|
||||||
|
Application.obj : error LNK2019: unresolved external symbol glfwSwapBuffers referenced in function main
|
||||||
|
D:\cpp\OpenGL\Dependencies\GLFW\lib-vc2022\glfw3.lib : warning LNK4272: library machine type 'x86' conflicts with target machine type 'x64'
|
||||||
|
D:\cpp\OpenGL\x64\Debug\OpenGL.exe : fatal error LNK1120: 8 unresolved externals
|
||||||
BIN
OpenGL/x64/Debug/OpenGL.tlog/CL.command.1.tlog
Normal file
BIN
OpenGL/x64/Debug/OpenGL.tlog/CL.command.1.tlog
Normal file
Binary file not shown.
BIN
OpenGL/x64/Debug/OpenGL.tlog/CL.read.1.tlog
Normal file
BIN
OpenGL/x64/Debug/OpenGL.tlog/CL.read.1.tlog
Normal file
Binary file not shown.
BIN
OpenGL/x64/Debug/OpenGL.tlog/CL.write.1.tlog
Normal file
BIN
OpenGL/x64/Debug/OpenGL.tlog/CL.write.1.tlog
Normal file
Binary file not shown.
2
OpenGL/x64/Debug/OpenGL.tlog/OpenGL.lastbuildstate
Normal file
2
OpenGL/x64/Debug/OpenGL.tlog/OpenGL.lastbuildstate
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.31.31103:TargetPlatformVersion=10.0.19041.0:
|
||||||
|
Debug|x64|D:\cpp\OpenGL\|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<EFBFBD><EFBFBD>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<EFBFBD><EFBFBD>
|
||||||
1
OpenGL/x64/Debug/OpenGL.tlog/link.32824-rc.read.1.tlog
Normal file
1
OpenGL/x64/Debug/OpenGL.tlog/link.32824-rc.read.1.tlog
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<EFBFBD><EFBFBD>
|
||||||
1
OpenGL/x64/Debug/OpenGL.tlog/link.32824-rc.write.1.tlog
Normal file
1
OpenGL/x64/Debug/OpenGL.tlog/link.32824-rc.write.1.tlog
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<EFBFBD><EFBFBD>
|
||||||
1
OpenGL/x64/Debug/OpenGL.tlog/link.32824.read.1.tlog
Normal file
1
OpenGL/x64/Debug/OpenGL.tlog/link.32824.read.1.tlog
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<EFBFBD><EFBFBD>
|
||||||
1
OpenGL/x64/Debug/OpenGL.tlog/link.32824.read.2.tlog
Normal file
1
OpenGL/x64/Debug/OpenGL.tlog/link.32824.read.2.tlog
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<EFBFBD><EFBFBD>
|
||||||
1
OpenGL/x64/Debug/OpenGL.tlog/link.32824.write.1.tlog
Normal file
1
OpenGL/x64/Debug/OpenGL.tlog/link.32824.write.1.tlog
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<EFBFBD><EFBFBD>
|
||||||
1
OpenGL/x64/Debug/OpenGL.tlog/link.command.1.tlog
Normal file
1
OpenGL/x64/Debug/OpenGL.tlog/link.command.1.tlog
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<EFBFBD><EFBFBD>
|
||||||
1
OpenGL/x64/Debug/OpenGL.tlog/link.read.1.tlog
Normal file
1
OpenGL/x64/Debug/OpenGL.tlog/link.read.1.tlog
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<EFBFBD><EFBFBD>
|
||||||
1
OpenGL/x64/Debug/OpenGL.tlog/link.write.1.tlog
Normal file
1
OpenGL/x64/Debug/OpenGL.tlog/link.write.1.tlog
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<EFBFBD><EFBFBD>
|
||||||
0
OpenGL/x64/Debug/OpenGL.tlog/unsuccessfulbuild
Normal file
0
OpenGL/x64/Debug/OpenGL.tlog/unsuccessfulbuild
Normal file
BIN
OpenGL/x64/Debug/vc143.idb
Normal file
BIN
OpenGL/x64/Debug/vc143.idb
Normal file
Binary file not shown.
BIN
OpenGL/x64/Debug/vc143.pdb
Normal file
BIN
OpenGL/x64/Debug/vc143.pdb
Normal file
Binary file not shown.
Reference in New Issue
Block a user