diff --git a/.gitignore b/.gitignore index e286847..a6c1ad3 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ x64 .git ipch shader2.VC.db +shader2.VC.VC.opendb diff --git a/.vs/shader2/v14/.suo b/.vs/shader2/v14/.suo index 006dfea..5874f40 100644 Binary files a/.vs/shader2/v14/.suo and b/.vs/shader2/v14/.suo differ diff --git a/main.cpp b/main.cpp index 421174b..3a2e8fb 100644 --- a/main.cpp +++ b/main.cpp @@ -144,26 +144,16 @@ INT WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine /*监听并处理用户请求*/ MSG msg; - while (true) { - if (PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE)) { - if (msg.message == WM_QUIT) { - break; - } - TranslateMessage(&msg); - DispatchMessage(&msg); - } - + auto what = [&]()->void { glm::mat4 normalMatrix = glm::inverseTranspose(model); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glUseProgram(program); glUniformMatrix4fv(MLocation, 1, GL_FALSE, glm::value_ptr(model)); glUniformMatrix4fv(VLocation, 1, GL_FALSE, identify); glUniformMatrix4fv(PLocation, 1, GL_FALSE, glm::value_ptr(projection)); glUniformMatrix4fv(NMLocation, 1, GL_FALSE, glm::value_ptr(normalMatrix)); - glBindTexture(GL_TEXTURE_2D, secondTexture); + glBindTexture(GL_TEXTURE_2D, mainTexture); glUniform1i(textureLocation, 0); glBindBuffer(GL_ARRAY_BUFFER, vbo); @@ -179,6 +169,22 @@ INT WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine glDrawElements(GL_TRIANGLES, indexCount, GL_UNSIGNED_INT, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); glUseProgram(0); + }; + + 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 | GL_DEPTH_BUFFER_BIT); + + glEnable(GL_SCISSOR_TEST); + glScissor(400,300, 100, 100); + what(); SwapBuffers(dc); }