Archived

This topic is now archived and is closed to further replies.

jocke

OpenGL OpenGL 1.2 ???

Recommended Posts

Where do i find OpenGL 1.2? I looked at www.opengl.org in the download section but i could not find it. Could anyone tell where i find it?

Share this post


Link to post
Share on other sites
Actually, i did use the search feature, and it didnt find
anything. Anyway , my problem is this:

I want to use the wglSwapIntervalEXT() function to turn off vsync
so i can test the TRUE fps of my app. To do this i was told
that i should go to opengl.org and get a file named "wglext.h"
which had the wglSwapIntervalEXT() function. So i got the file,
included it in my source file and called the function.
When i tryed to compile i got and "unresolved external symbol"
error message. So i thought that maybe i need a newer version of
opengl beacuse i only have 1.1.
So any hint on what i should do about this would be helpful.

Share this post


Link to post
Share on other sites
Ok, this question is kind of unique then . You pass the name of the function you want to wglGetProcAddress, and store the return value in a function pointer (look in the wglext.h header, I forget what the name of the typedef is). Then you call that function pointer as if it were wglSwapIntervalEXT (because it basically is).

[Resist Windows XP''s Invasive Production Activation Technology!]

Share this post


Link to post
Share on other sites
Ok, in wglext.h the following is defined:

extern BOOL WINAPI wglSwapIntervalEXT (int);
typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);

And in my program i did this:
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC)
wglGetProcAddress("wglSwapIntervalEXT");

When i compiled this i got this message:

error C2659: ''='' : overloaded function as left operand

What am i doing wrong?

NOTE:
I have declared my own function pointer, i just used the existing
one. Is that wrong?

Share this post


Link to post
Share on other sites
Yep Null and Void you are correct
The Joke, the problem with your code is that you declare wglSwapIntervalEXT as an extern function, so the linker searches for it in the .obj it is linking (static linking)
Opengl uses a dynamic link schema, this means that at compile time you do not know where is the function, the exact adress will be given at runtime.
Perhaps i''m not very clear, but this is the spirit of it

Share this post


Link to post
Share on other sites
not to sure what MCD meens but goto:

http://www.microsoft.com/WINDOWS2000/techinfo/reskit/en/ProRK/prdm_mtm_kayi.htm

bout half way down the page under the header opengl 1.2

Click to goto my page

Share this post


Link to post
Share on other sites
An MCD is a mini client driver, in this case opengl32.dll. Also, I think I figured out why they say that. The .lib file doesn''t, but the Win2K .dll does. So, we still have to use extensions for 1.2+, but we can be sure that all of 1.2''s standard features are supported in software mode.

[Resist Windows XP''s Invasive Production Activation Technology!]

Share this post


Link to post
Share on other sites
Ok, im a bit confused.
Is OpenGL 1.2 a new set of libs and headers?
I had heard somewhere that in order to use 1.2
i need to use extensions. Is this true?
If so, where do i find these extensions?
I mean there have to be some new dlls and libs and stuff right?

Share this post


Link to post
Share on other sites
quote:
Original post by jocke
Ok, im a bit confused.
Is OpenGL 1.2 a new set of libs and headers?
I had heard somewhere that in order to use 1.2
i need to use extensions. Is this true?
If so, where do i find these extensions?
I mean there have to be some new dlls and libs and stuff right?

You use wglGetProcAddress to get the extensions (if you''ve downloaded glext.h). Microsoft won''t give out an updated .lib file, so your program doesn''t know about the new functions ahead of time. Most other OS''s have updated files, so your program DOES know about the functions ahead of time.

[Resist Windows XP''s Invasive Production Activation Technology!]

Share this post


Link to post
Share on other sites

  • Partner Spotlight

  • Forum Statistics

    • Total Topics
      627638
    • Total Posts
      2978330
  • Similar Content

    • By xhcao
      Before using void glBindImageTexture(    GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format), does need to make sure that texture is completeness. 
    • By cebugdev
      hi guys, 
      are there any books, link online or any other resources that discusses on how to build special effects such as magic, lightning, etc. in OpenGL? i mean, yeah most of them are using particles but im looking for resources specifically on how to manipulate the particles to look like an effect that can be use for games,. i did fire particle before, and I want to learn how to do the other 'magic' as well.
      Like are there one book or link(cant find in google) that atleast featured how to make different particle effects in OpenGL (or DirectX)? If there is no one stop shop for it, maybe ill just look for some tips on how to make a particle engine that is flexible enough to enable me to design different effects/magic 
      let me know if you guys have recommendations.
      Thank you in advance!
    • By dud3
      How do we rotate the camera around x axis 360 degrees, without having the strange effect as in my video below? 
      Mine behaves exactly the same way spherical coordinates would, I'm using euler angles.
      Tried googling, but couldn't find a proper answer, guessing I don't know what exactly to google for, googled 'rotate 360 around x axis', got no proper answers.
       
      References:
      Code: https://pastebin.com/Hcshj3FQ
      The video shows the difference between blender and my rotation:
       
    • By Defend
      I've had a Google around for this but haven't yet found some solid advice. There is a lot of "it depends", but I'm not sure on what.
      My question is what's a good rule of thumb to follow when it comes to creating/using VBOs & VAOs? As in, when should I use multiple or when should I not? My understanding so far is that if I need a new VBO, then I need a new VAO. So when it comes to rendering multiple objects I can either:
      * make lots of VAO/VBO pairs and flip through them to render different objects, or
      * make one big VBO and jump around its memory to render different objects. 
      I also understand that if I need to render objects with different vertex attributes, then a new VAO is necessary in this case.
      If that "it depends" really is quite variable, what's best for a beginner with OpenGL, assuming that better approaches can be learnt later with better understanding?
       
    • By test opty
      Hello all,
       
      On my Windows 7 x64 machine I wrote the code below on VS 2017 and ran it.
      #include <glad/glad.h>  #include <GLFW/glfw3.h> #include <std_lib_facilities_4.h> using namespace std; void framebuffer_size_callback(GLFWwindow* window , int width, int height) {     glViewport(0, 0, width, height); } //****************************** void processInput(GLFWwindow* window) {     if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)         glfwSetWindowShouldClose(window, true); } //********************************* int main() {     glfwInit();     glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);     glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);     glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);     //glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);     GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", nullptr, nullptr);     if (window == nullptr)     {         cout << "Failed to create GLFW window" << endl;         glfwTerminate();         return -1;     }     glfwMakeContextCurrent(window);     if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))     {         cout << "Failed to initialize GLAD" << endl;         return -1;     }     glViewport(0, 0, 600, 480);     glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);     glClearColor(0.2f, 0.3f, 0.3f, 1.0f);     glClear(GL_COLOR_BUFFER_BIT);     while (!glfwWindowShouldClose(window))     {         processInput(window);         glfwSwapBuffers(window);         glfwPollEvents();     }     glfwTerminate();     return 0; }  
      The result should be a fixed dark green-blueish color as the end of here. But the color of my window turns from black to green-blueish repeatedly in high speed! I thought it might be a problem with my Graphics card driver but I've updated it and it's: NVIDIA GeForce GTX 750 Ti.
      What is the problem and how to solve it please?
  • Popular Now