7 changed files with 347 additions and 0 deletions
-
40.gitignore
-
104main.cpp
-
BINshader2.VC.VC.opendb
-
BINshader2.VC.db
-
28shader2.sln
-
153shader2.vcxproj
-
22shader2.vcxproj.filters
@ -0,0 +1,40 @@ |
|||||
|
# ---> C++ |
||||
|
# Prerequisites |
||||
|
*.d |
||||
|
|
||||
|
# Compiled Object files |
||||
|
*.slo |
||||
|
*.lo |
||||
|
*.o |
||||
|
*.obj |
||||
|
|
||||
|
# Precompiled Headers |
||||
|
*.gch |
||||
|
*.pch |
||||
|
|
||||
|
# Compiled Dynamic libraries |
||||
|
*.so |
||||
|
*.dylib |
||||
|
*.dll |
||||
|
|
||||
|
# Fortran module files |
||||
|
*.mod |
||||
|
*.smod |
||||
|
|
||||
|
# Compiled Static libraries |
||||
|
*.lai |
||||
|
*.la |
||||
|
*.a |
||||
|
*.lib |
||||
|
|
||||
|
# Executables |
||||
|
*.exe |
||||
|
*.out |
||||
|
*.app |
||||
|
|
||||
|
#vs2015 |
||||
|
Debug |
||||
|
Release |
||||
|
x64 |
||||
|
.git |
||||
|
ipch |
@ -0,0 +1,104 @@ |
|||||
|
#include <windows.h>
|
||||
|
#include <gl/GL.h>
|
||||
|
#include <stdio.h>
|
||||
|
#pragma comment(lib,"opengl32.lib")
|
||||
|
|
||||
|
/**
|
||||
|
* @hwnd 发起消息的窗口 |
||||
|
* @msg 消息类型 |
||||
|
*/ |
||||
|
LRESULT CALLBACK GLWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { |
||||
|
switch (msg) { |
||||
|
case WM_CLOSE: |
||||
|
PostQuitMessage(0); |
||||
|
return 0; |
||||
|
} |
||||
|
|
||||
|
return DefWindowProc(hwnd, msg, wParam, lParam);//其他消息调用window默认处理函数
|
||||
|
} |
||||
|
|
||||
|
/**
|
||||
|
* @hinstance 本应用程序启动实例 |
||||
|
* @hPrevInstance 上一次应用程式的实例 |
||||
|
* @IpCmdLine 命令行的参数 |
||||
|
* @ShowCmd 怎么显示窗口 |
||||
|
*/ |
||||
|
INT WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) |
||||
|
{ |
||||
|
/*注册窗口*/ |
||||
|
WNDCLASSEX wndclass; |
||||
|
wndclass.cbClsExtra = 0; //窗口类型的额外空间,这里不需要
|
||||
|
wndclass.cbSize = sizeof(WNDCLASSEX); //窗口实际占用的内存
|
||||
|
wndclass.cbWndExtra = 0; //窗口的额外空间,这里不需要
|
||||
|
wndclass.hbrBackground = NULL; //窗口背景
|
||||
|
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); //定义鼠标类型
|
||||
|
wndclass.hIcon = NULL; //应用程序exe文件显示图标
|
||||
|
wndclass.hIconSm = NULL; //应用程序运行时左上角图标
|
||||
|
wndclass.hInstance = hinstance; //本应用程序实例
|
||||
|
wndclass.lpfnWndProc = GLWindowProc; //如果用户操作了窗口,本函数会被调用
|
||||
|
wndclass.lpszClassName = L"GLWindow";//窗口名称
|
||||
|
wndclass.lpszMenuName = NULL;//菜单名称
|
||||
|
wndclass.style = CS_VREDRAW | CS_HREDRAW;//窗口更新时的重绘方式,这里使用垂直重绘和水平重绘
|
||||
|
ATOM atom = RegisterClassEx(&wndclass); |
||||
|
if (!atom) { |
||||
|
MessageBox(NULL, L"Register failed", L"Error", MB_OK); |
||||
|
return 0; |
||||
|
} |
||||
|
|
||||
|
/*创建窗口*/ |
||||
|
//调整窗口大小
|
||||
|
RECT rect; |
||||
|
rect.left = 0; |
||||
|
rect.right = 800; |
||||
|
rect.top = 0; |
||||
|
rect.bottom = 600; |
||||
|
AdjustWindowRect(&rect, WS_EX_OVERLAPPEDWINDOW, NULL); |
||||
|
int windowWidth = rect.right - rect.left; |
||||
|
int windowHeight = rect.bottom - rect.top; |
||||
|
|
||||
|
//窗口名称一定要和刚才注册窗口的保持一致
|
||||
|
HWND hwnd = CreateWindowEx(NULL, L"GLWindow", L"OpenGL Window", WS_OVERLAPPEDWINDOW, 100, 100, windowWidth, windowHeight, NULL, NULL, hinstance, NULL); |
||||
|
|
||||
|
//设置渲染环境
|
||||
|
HDC dc = GetDC(hwnd);//获取设备上下文
|
||||
|
PIXELFORMATDESCRIPTOR pfd; |
||||
|
memset(&pfd, 0, sizeof(PIXELFORMATDESCRIPTOR)); |
||||
|
pfd.nVersion = 1; |
||||
|
pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR); |
||||
|
pfd.cColorBits = 32; //颜色缓冲区每个像素为32比特4通道RGBA
|
||||
|
pfd.cDepthBits = 24; //深度缓冲区每个像素大小,24比特表示一个浮点数
|
||||
|
pfd.cStencilBits = 8; //蒙板缓冲区每像素为8比特
|
||||
|
pfd.iPixelType = PFD_TYPE_RGBA; //设置像素类型为RGBA
|
||||
|
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; //表示像素最后输出到窗口
|
||||
|
//设置像素格式
|
||||
|
int pixelFormat = ChoosePixelFormat(dc, &pfd); |
||||
|
SetPixelFormat(dc, pixelFormat, &pfd); |
||||
|
|
||||
|
//创建OpenGL渲染环境
|
||||
|
HGLRC rc = wglCreateContext(dc); |
||||
|
wglMakeCurrent(dc, rc);//设置OpenGL渲染环境生效
|
||||
|
|
||||
|
glClearColor(1.0f, 1.0f, 0.0f, 1.0f); |
||||
|
|
||||
|
/*显示窗口*/ |
||||
|
ShowWindow(hwnd, SW_SHOW); |
||||
|
UpdateWindow(hwnd); |
||||
|
|
||||
|
/*监听并处理用户请求*/ |
||||
|
MSG msg; |
||||
|
while (true) { |
||||
|
if (PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE)) { |
||||
|
if (msg.message == WM_QUIT) { |
||||
|
break; |
||||
|
} |
||||
|
TranslateMessage(&msg); |
||||
|
DispatchMessage(&msg); |
||||
|
} |
||||
|
|
||||
|
glClear(GL_COLOR_BUFFER_BIT); |
||||
|
|
||||
|
SwapBuffers(dc); |
||||
|
} |
||||
|
|
||||
|
return 0; |
||||
|
} |
@ -0,0 +1,28 @@ |
|||||
|
|
||||
|
Microsoft Visual Studio Solution File, Format Version 12.00 |
||||
|
# Visual Studio 14 |
||||
|
VisualStudioVersion = 14.0.25420.1 |
||||
|
MinimumVisualStudioVersion = 10.0.40219.1 |
||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shader2", "shader2.vcxproj", "{7BF953FA-C4AE-4FD4-9DD5-91F683C18173}" |
||||
|
EndProject |
||||
|
Global |
||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
||||
|
Debug|x64 = Debug|x64 |
||||
|
Debug|x86 = Debug|x86 |
||||
|
Release|x64 = Release|x64 |
||||
|
Release|x86 = Release|x86 |
||||
|
EndGlobalSection |
||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
||||
|
{7BF953FA-C4AE-4FD4-9DD5-91F683C18173}.Debug|x64.ActiveCfg = Debug|x64 |
||||
|
{7BF953FA-C4AE-4FD4-9DD5-91F683C18173}.Debug|x64.Build.0 = Debug|x64 |
||||
|
{7BF953FA-C4AE-4FD4-9DD5-91F683C18173}.Debug|x86.ActiveCfg = Debug|Win32 |
||||
|
{7BF953FA-C4AE-4FD4-9DD5-91F683C18173}.Debug|x86.Build.0 = Debug|Win32 |
||||
|
{7BF953FA-C4AE-4FD4-9DD5-91F683C18173}.Release|x64.ActiveCfg = Release|x64 |
||||
|
{7BF953FA-C4AE-4FD4-9DD5-91F683C18173}.Release|x64.Build.0 = Release|x64 |
||||
|
{7BF953FA-C4AE-4FD4-9DD5-91F683C18173}.Release|x86.ActiveCfg = Release|Win32 |
||||
|
{7BF953FA-C4AE-4FD4-9DD5-91F683C18173}.Release|x86.Build.0 = Release|Win32 |
||||
|
EndGlobalSection |
||||
|
GlobalSection(SolutionProperties) = preSolution |
||||
|
HideSolutionNode = FALSE |
||||
|
EndGlobalSection |
||||
|
EndGlobal |
@ -0,0 +1,153 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<Project DefaultTargets="Build" ToolsVersion="14.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="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"> |
||||
|
<ProjectGuid>{7BF953FA-C4AE-4FD4-9DD5-91F683C18173}</ProjectGuid> |
||||
|
<Keyword>Win32Proj</Keyword> |
||||
|
<RootNamespace>shader2</RootNamespace> |
||||
|
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> |
||||
|
</PropertyGroup> |
||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> |
||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> |
||||
|
<ConfigurationType>Application</ConfigurationType> |
||||
|
<UseDebugLibraries>true</UseDebugLibraries> |
||||
|
<PlatformToolset>v140</PlatformToolset> |
||||
|
<CharacterSet>Unicode</CharacterSet> |
||||
|
</PropertyGroup> |
||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> |
||||
|
<ConfigurationType>Application</ConfigurationType> |
||||
|
<UseDebugLibraries>false</UseDebugLibraries> |
||||
|
<PlatformToolset>v140</PlatformToolset> |
||||
|
<WholeProgramOptimization>true</WholeProgramOptimization> |
||||
|
<CharacterSet>Unicode</CharacterSet> |
||||
|
</PropertyGroup> |
||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> |
||||
|
<ConfigurationType>Application</ConfigurationType> |
||||
|
<UseDebugLibraries>true</UseDebugLibraries> |
||||
|
<PlatformToolset>v140</PlatformToolset> |
||||
|
<CharacterSet>Unicode</CharacterSet> |
||||
|
</PropertyGroup> |
||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> |
||||
|
<ConfigurationType>Application</ConfigurationType> |
||||
|
<UseDebugLibraries>false</UseDebugLibraries> |
||||
|
<PlatformToolset>v140</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)'=='Debug|x64'"> |
||||
|
<LinkIncremental>true</LinkIncremental> |
||||
|
</PropertyGroup> |
||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
|
<LinkIncremental>false</LinkIncremental> |
||||
|
</PropertyGroup> |
||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
||||
|
<LinkIncremental>false</LinkIncremental> |
||||
|
</PropertyGroup> |
||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
|
<ClCompile> |
||||
|
<PrecompiledHeader> |
||||
|
</PrecompiledHeader> |
||||
|
<WarningLevel>Level3</WarningLevel> |
||||
|
<Optimization>Disabled</Optimization> |
||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
|
</ClCompile> |
||||
|
<Link> |
||||
|
<SubSystem>Windows</SubSystem> |
||||
|
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
|
</Link> |
||||
|
<PostBuildEvent> |
||||
|
<Command>editbin /subsystem:console $(OutDir)$(ProjectName).exe</Command> |
||||
|
</PostBuildEvent> |
||||
|
</ItemDefinitionGroup> |
||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
||||
|
<ClCompile> |
||||
|
<PrecompiledHeader> |
||||
|
</PrecompiledHeader> |
||||
|
<WarningLevel>Level3</WarningLevel> |
||||
|
<Optimization>Disabled</Optimization> |
||||
|
<PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
|
</ClCompile> |
||||
|
<Link> |
||||
|
<SubSystem>Windows</SubSystem> |
||||
|
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
|
</Link> |
||||
|
</ItemDefinitionGroup> |
||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
|
<ClCompile> |
||||
|
<WarningLevel>Level3</WarningLevel> |
||||
|
<PrecompiledHeader> |
||||
|
</PrecompiledHeader> |
||||
|
<Optimization>MaxSpeed</Optimization> |
||||
|
<FunctionLevelLinking>true</FunctionLevelLinking> |
||||
|
<IntrinsicFunctions>true</IntrinsicFunctions> |
||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
|
</ClCompile> |
||||
|
<Link> |
||||
|
<SubSystem>Windows</SubSystem> |
||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
||||
|
<OptimizeReferences>true</OptimizeReferences> |
||||
|
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
|
</Link> |
||||
|
</ItemDefinitionGroup> |
||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
||||
|
<ClCompile> |
||||
|
<WarningLevel>Level3</WarningLevel> |
||||
|
<PrecompiledHeader> |
||||
|
</PrecompiledHeader> |
||||
|
<Optimization>MaxSpeed</Optimization> |
||||
|
<FunctionLevelLinking>true</FunctionLevelLinking> |
||||
|
<IntrinsicFunctions>true</IntrinsicFunctions> |
||||
|
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
|
</ClCompile> |
||||
|
<Link> |
||||
|
<SubSystem>Windows</SubSystem> |
||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
||||
|
<OptimizeReferences>true</OptimizeReferences> |
||||
|
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
|
</Link> |
||||
|
</ItemDefinitionGroup> |
||||
|
<ItemGroup> |
||||
|
<ClCompile Include="main.cpp" /> |
||||
|
</ItemGroup> |
||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
||||
|
<ImportGroup Label="ExtensionTargets"> |
||||
|
</ImportGroup> |
||||
|
</Project> |
@ -0,0 +1,22 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
|
<ItemGroup> |
||||
|
<Filter Include="源文件"> |
||||
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> |
||||
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> |
||||
|
</Filter> |
||||
|
<Filter Include="头文件"> |
||||
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> |
||||
|
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions> |
||||
|
</Filter> |
||||
|
<Filter Include="资源文件"> |
||||
|
<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="main.cpp"> |
||||
|
<Filter>源文件</Filter> |
||||
|
</ClCompile> |
||||
|
</ItemGroup> |
||||
|
</Project> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue