I was doing some tests with OpenGL in my laptop, which has an Intel HD Graphics 3000, compatible with DirectX 10.1 and OpenGL 3.1. I compiled glew and saw an interesting executable named glewinfo. I opened it and it generated a glewinfo.txt file. Then I took a look at it.
GLEW version 1.13.0
Reporting capabilities of pixelformat 3
Running on a Intel(R) HD Graphics 3000 from Intel
OpenGL version 3.1.0 - Build 9.17.10.4229 is supported
GL_VERSION_1_1: OK
---------------
GL_VERSION_1_2: OK
---------------
glCopyTexSubImage3D: OK
glDrawRangeElements: OK
glTexImage3D: OK
glTexSubImage3D: OK
GL_VERSION_1_2_1: OK
-----------------
GL_VERSION_1_3: OK
---------------
glActiveTexture: OK
glClientActiveTexture: OK
glCompressedTexImage1D: OK
glCompressedTexImage2D: OK
glCompressedTexImage3D: OK
glCompressedTexSubImage1D: OK
glCompressedTexSubImage2D: OK
glCompressedTexSubImage3D: OK
glGetCompressedTexImage: OK
glLoadTransposeMatrixd: OK
glLoadTransposeMatrixf: OK
glMultTransposeMatrixd: OK
glMultTransposeMatrixf: OK
glMultiTexCoord1d: OK
glMultiTexCoord1dv: OK
glMultiTexCoord1f: OK
glMultiTexCoord1fv: OK
glMultiTexCoord1i: OK
glMultiTexCoord1iv: OK
glMultiTexCoord1s: OK
glMultiTexCoord1sv: OK
glMultiTexCoord2d: OK
glMultiTexCoord2dv: OK
glMultiTexCoord2f: OK
glMultiTexCoord2fv: OK
glMultiTexCoord2i: OK
glMultiTexCoord2iv: OK
glMultiTexCoord2s: OK
glMultiTexCoord2sv: OK
glMultiTexCoord3d: OK
glMultiTexCoord3dv: OK
glMultiTexCoord3f: OK
glMultiTexCoord3fv: OK
glMultiTexCoord3i: OK
glMultiTexCoord3iv: OK
glMultiTexCoord3s: OK
glMultiTexCoord3sv: OK
glMultiTexCoord4d: OK
glMultiTexCoord4dv: OK
glMultiTexCoord4f: OK
glMultiTexCoord4fv: OK
glMultiTexCoord4i: OK
glMultiTexCoord4iv: OK
glMultiTexCoord4s: OK
glMultiTexCoord4sv: OK
glSampleCoverage: OK
GL_VERSION_1_4: OK
---------------
glBlendColor: OK
glBlendEquation: OK
glBlendFuncSeparate: OK
glFogCoordPointer: OK
glFogCoordd: OK
glFogCoorddv: OK
glFogCoordf: OK
glFogCoordfv: OK
glMultiDrawArrays: OK
glMultiDrawElements: OK
glPointParameterf: OK
glPointParameterfv: OK
glPointParameteri: OK
glPointParameteriv: OK
glSecondaryColor3b: OK
glSecondaryColor3bv: OK
glSecondaryColor3d: OK
glSecondaryColor3dv: OK
glSecondaryColor3f: OK
glSecondaryColor3fv: OK
glSecondaryColor3i: OK
glSecondaryColor3iv: OK
glSecondaryColor3s: OK
glSecondaryColor3sv: OK
glSecondaryColor3ub: OK
glSecondaryColor3ubv: OK
glSecondaryColor3ui: OK
glSecondaryColor3uiv: OK
glSecondaryColor3us: OK
glSecondaryColor3usv: OK
glSecondaryColorPointer: OK
glWindowPos2d: OK
glWindowPos2dv: OK
glWindowPos2f: OK
glWindowPos2fv: OK
glWindowPos2i: OK
glWindowPos2iv: OK
glWindowPos2s: OK
glWindowPos2sv: OK
glWindowPos3d: OK
glWindowPos3dv: OK
glWindowPos3f: OK
glWindowPos3fv: OK
glWindowPos3i: OK
glWindowPos3iv: OK
glWindowPos3s: OK
glWindowPos3sv: OK
GL_VERSION_1_5: OK
---------------
glBeginQuery: OK
glBindBuffer: OK
glBufferData: OK
glBufferSubData: OK
glDeleteBuffers: OK
glDeleteQueries: OK
glEndQuery: OK
glGenBuffers: OK
glGenQueries: OK
glGetBufferParameteriv: OK
glGetBufferPointerv: OK
glGetBufferSubData: OK
glGetQueryObjectiv: OK
glGetQueryObjectuiv: OK
glGetQueryiv: OK
glIsBuffer: OK
glIsQuery: OK
glMapBuffer: OK
glUnmapBuffer: OK
GL_VERSION_2_0: OK
---------------
glAttachShader: OK
glBindAttribLocation: OK
glBlendEquationSeparate: OK
glCompileShader: OK
glCreateProgram: OK
glCreateShader: OK
glDeleteProgram: OK
glDeleteShader: OK
glDetachShader: OK
glDisableVertexAttribArray: OK
glDrawBuffers: OK
glEnableVertexAttribArray: OK
glGetActiveAttrib: OK
glGetActiveUniform: OK
glGetAttachedShaders: OK
glGetAttribLocation: OK
glGetProgramInfoLog: OK
glGetProgramiv: OK
glGetShaderInfoLog: OK
glGetShaderSource: OK
glGetShaderiv: OK
glGetUniformLocation: OK
glGetUniformfv: OK
glGetUniformiv: OK
glGetVertexAttribPointerv: OK
glGetVertexAttribdv: OK
glGetVertexAttribfv: OK
glGetVertexAttribiv: OK
glIsProgram: OK
glIsShader: OK
glLinkProgram: OK
glShaderSource: OK
glStencilFuncSeparate: OK
glStencilMaskSeparate: OK
glStencilOpSeparate: OK
glUniform1f: OK
glUniform1fv: OK
glUniform1i: OK
glUniform1iv: OK
glUniform2f: OK
glUniform2fv: OK
glUniform2i: OK
glUniform2iv: OK
glUniform3f: OK
glUniform3fv: OK
glUniform3i: OK
glUniform3iv: OK
glUniform4f: OK
glUniform4fv: OK
glUniform4i: OK
glUniform4iv: OK
glUniformMatrix2fv: OK
glUniformMatrix3fv: OK
glUniformMatrix4fv: OK
glUseProgram: OK
glValidateProgram: OK
glVertexAttrib1d: OK
glVertexAttrib1dv: OK
glVertexAttrib1f: OK
glVertexAttrib1fv: OK
glVertexAttrib1s: OK
glVertexAttrib1sv: OK
glVertexAttrib2d: OK
glVertexAttrib2dv: OK
glVertexAttrib2f: OK
glVertexAttrib2fv: OK
glVertexAttrib2s: OK
glVertexAttrib2sv: OK
glVertexAttrib3d: OK
glVertexAttrib3dv: OK
glVertexAttrib3f: OK
glVertexAttrib3fv: OK
glVertexAttrib3s: OK
glVertexAttrib3sv: OK
glVertexAttrib4Nbv: OK
glVertexAttrib4Niv: OK
glVertexAttrib4Nsv: OK
glVertexAttrib4Nub: OK
glVertexAttrib4Nubv: OK
glVertexAttrib4Nuiv: OK
glVertexAttrib4Nusv: OK
glVertexAttrib4bv: OK
glVertexAttrib4d: OK
glVertexAttrib4dv: OK
glVertexAttrib4f: OK
glVertexAttrib4fv: OK
glVertexAttrib4iv: OK
glVertexAttrib4s: OK
glVertexAttrib4sv: OK
glVertexAttrib4ubv: OK
glVertexAttrib4uiv: OK
glVertexAttrib4usv: OK
glVertexAttribPointer: OK
GL_VERSION_2_1: OK
---------------
glUniformMatrix2x3fv: OK
glUniformMatrix2x4fv: OK
glUniformMatrix3x2fv: OK
glUniformMatrix3x4fv: OK
glUniformMatrix4x2fv: OK
glUniformMatrix4x3fv: OK
GL_VERSION_3_0: OK
---------------
glBeginConditionalRender: OK
glBeginTransformFeedback: OK
glBindFragDataLocation: OK
glClampColor: OK
glClearBufferfi: OK
glClearBufferfv: OK
glClearBufferiv: OK
glClearBufferuiv: OK
glColorMaski: OK
glDisablei: OK
glEnablei: OK
glEndConditionalRender: OK
glEndTransformFeedback: OK
glGetBooleani_v: OK
glGetFragDataLocation: OK
glGetStringi: OK
glGetTexParameterIiv: OK
glGetTexParameterIuiv: OK
glGetTransformFeedbackVarying: OK
glGetUniformuiv: OK
glGetVertexAttribIiv: OK
glGetVertexAttribIuiv: OK
glIsEnabledi: OK
glTexParameterIiv: OK
glTexParameterIuiv: OK
glTransformFeedbackVaryings: OK
glUniform1ui: OK
glUniform1uiv: OK
glUniform2ui: OK
glUniform2uiv: OK
glUniform3ui: OK
glUniform3uiv: OK
glUniform4ui: OK
glUniform4uiv: OK
glVertexAttribI1i: OK
glVertexAttribI1iv: OK
glVertexAttribI1ui: OK
glVertexAttribI1uiv: OK
glVertexAttribI2i: OK
glVertexAttribI2iv: OK
glVertexAttribI2ui: OK
glVertexAttribI2uiv: OK
glVertexAttribI3i: OK
glVertexAttribI3iv: OK
glVertexAttribI3ui: OK
glVertexAttribI3uiv: OK
glVertexAttribI4bv: OK
glVertexAttribI4i: OK
glVertexAttribI4iv: OK
glVertexAttribI4sv: OK
glVertexAttribI4ubv: OK
glVertexAttribI4ui: OK
glVertexAttribI4uiv: OK
glVertexAttribI4usv: OK
glVertexAttribIPointer: OK
GL_VERSION_3_1: OK
---------------
glDrawArraysInstanced: OK
glDrawElementsInstanced: OK
glPrimitiveRestartIndex: OK
glTexBuffer: OK
GL_VERSION_3_2: MISSING
---------------
glFramebufferTexture: OK
glGetBufferParameteri64v: MISSING
glGetInteger64i_v: MISSING
GL_VERSION_3_3: OK
---------------
glVertexAttribDivisor: OK
GL_VERSION_4_0: MISSING
---------------
glBlendEquationSeparatei: OK
glBlendEquationi: OK
glBlendFuncSeparatei: OK
glBlendFunci: OK
glMinSampleShading: MISSING
GL_VERSION_4_1: MISSING
---------------
GL_VERSION_4_2: MISSING
---------------
GL_VERSION_4_3: MISSING
---------------
GL_VERSION_4_4: MISSING
---------------
GL_VERSION_4_5: MISSING
---------------
glGetGraphicsResetStatus: MISSING
glGetnCompressedTexImage: MISSING
glGetnTexImage: MISSING
glGetnUniformdv: MISSING
There is much more, but I think the rest is just extensions. I'm uploading the original file if you'd like to take a look:
[attachment=30119:glewinfo.txt]
Now to the actual question: It seems that my GPU supports OpenGL 3.1 and 3.3 entirely, but doesn't support all features of 3.2 and 4.0. Does that mean I could actually use OpenGL 4.0 as long as I don't rely on the missing features (glGetBufferParameteri64v, glGetInteger64i_v and glMinSampleShading) or I would not be able to do that just because there are some features missing?
I've been working a lot with DirectX which is much simpler to me (because of feature levels), so that is just weird to me. Sorry for my stupidity and thanks for reading.