   A little confused with my move from Direct3D to OpenGL...
  I'm having a hard time deciding what question to ask exactly; I feel a little scattered right now. I recently decided to use OpenGL over Direct3D which I've been using for a few weeks. I've got the WINAPI all figured out and I've got a solid message/game loop built with it. I'm happy with how everything functions. Then I suddenly decided I want to try out OpenGL. So I look up some tutorials and all of a sudden there's this thing called GLUT everybody is using that handles all the windows stuff. For a second I'm excited but then I get to the incredibly vague glutMainLoop() function...I'm pretty picky about the game loop thing... I kind of want to reuse the one I've created for Win32/D3D for OpenGL instead of letting this GLUT fellow handle it for me. I continued searching around and discovered GLUT is pretty old and it is mostly just used for its simplicity to prototype things. So I try to find some tutorials without GLUT and I find tutorials using SDL and GLuax or something?I guess I'll settle on this question: Is there some way to just use OpenGL with my WIN32 code? I just want to basically go to my initGraphics()-type function and replace the D3D initializations to Ogl ones.I've gone through the trouble of learning the Windows API stuff, so I would rather stick with that and have complete control over my application, instead of letting some free library someone wrote mysteriously do things for me. Maybe I'm a control freak.Oh, one other thing - Which OpenGL version should I use? I don't want to shut out gamers who don't have beefy graphics cards but I also don't want to use something ancient. Would 2.0 be good?Sorry for the long post. Thanks in advance for any input.   
  You can easily setup OpenGL with pure win32 (and WGL) API calls. All you need is a window, its handle and its device context. Since you know win32, I assume you know how to do this.You'd then choose and enable a suitable format for the OpenGL framebuffer you'd like use with the window. The relevant win32 functions here are ChoosePixelFormat and SetPixelFormat.Finally, you'd create an OpenGL context using wglCreateContext , activate it with a call to wglMakeCurrent and you can start rendering away.That's basically it.   ;  Regarding GL version, 2 is an alright choice. It loosely corresponds to DX9 so it should work on most cards.You can check out these lists to see which model cards support which versions:http://en.wikipedia.org/wiki/Comparison_of_Nvidia_graphics_processing_unitshttp://en.wikipedia.org/wiki/Comparison_of_AMD_graphics_processing_units   ;  Thank you very much gentlemen. I've now got OpenGL initialized and ready to use in my engine!   ;  Don't use GLUT! it may be useful for small demos and beginners but it's definitely not suited for a project like yours. Most OpenGL tutorials on the web are outdated anyway, telling you to use deprecated functions. Good luck with your project!   