News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

Can't get a rendering context, wglCreateContext fails

Started by hamper, November 11, 2013, 10:30:52 PM

Previous topic - Next topic

Gunther

Dave,

version 3 and 4 work fine under XP with VirtualPC, but not under Windows 7 (empty black window, no triangle).

Gunther
You have to know the facts before you can distort them.

dedndave

many thanks for all the reports   :t

maybe the flags have something to do with it
i am working on a new version that may also address the close button problems   :P

there are a few other flags - they appear to be device and/or version dependant
unless we want to get into writing seperate code for different platforms, we can more or less ignore them
(at least while we're in the learning phase - lol)
;-----------------------------------------
;
;PIXELFORMATDESCRIPTOR structure members:
;
;nSize           dw ? ;structure size
;nVersion        dw ? ;always set to 1
;dwFlags         dd ? ;various combinations of pixel buffer property flags                            (see notes below)
;iPixelType      db ? ;one of the following: PFD_TYPE_RGBA, PFD_TYPE_COLORINDEX
;cColorBits      db ? ;number of color bitplanes in each color buffer
;cRedBits        db ? ;number of red bitplanes in each RGBA buffer                    (only used with PFD_NEED_PALETTE)
;cRedShift       db ? ;shift count for red bitplanes in each RGBA buffer              (only used with PFD_NEED_PALETTE)
;cGreenBits      db ? ;number of green bitplanes in each RGBA buffer                  (only used with PFD_NEED_PALETTE)
;cGreenShift     db ? ;shift count for green bitplanes in each RGBA buffer            (only used with PFD_NEED_PALETTE)
;cBlueBits       db ? ;number of blue bitplanes in each RGBA buffer                   (only used with PFD_NEED_PALETTE)
;cBlueShift      db ? ;shift count for blue bitplanes in each RGBA buffer             (only used with PFD_NEED_PALETTE)
;cAlphaBits      db ? ;number of alpha bitplanes in each RGBA buffer                                    (not supported)
;cAlphaShift     db ? ;shift count for alpha bitplanes in each RGBA buffer                              (not supported)
;cAccumBits      db ? ;number of bitplanes in the accumulation buffer                                   (not supported)
;cAccumRedBits   db ? ;number of red bitplanes in the accumulation buffer                               (not supported)
;cAccumGreenBits db ? ;number of green bitplanes in the accumulation buffer                             (not supported)
;cAccumBlueBits  db ? ;number of blue bitplanes in the accumulation buffer                              (not supported)
;cAccumAlphaBits db ? ;number of alpha bitplanes in the accumulation buffer                             (not supported)
;cDepthBits      db ? ;bit depth of z-buffer
;cStencilBits    db ? ;bit depth of stencil buffer
;cAuxBuffers     db ? ;number of auxiliary buffers                                                      (not supported)
;iLayerType      db ? ;one of the following: PFD_MAIN_PLANE, PFD_OVERLAY_PLANE, PFD_UNDERLAY_PLANE     (no longer used)
;bReserved       db ? ;low 4 bits = overlay planes, high 4 bits = underlay planes
;dwLayerMask     dd ? ;                                                                                (no longer used)
;dwVisibleMask   dd ? ;transparent underlay plane color (PFD_TYPE_RGBA) or index (PFD_TYPE_COLORINDEX)
;dwDamageMask    dd ? ;                                                                                (no longer used)
;
;-----------------------------------------
;
;dwFlags bits:
;
;PFD_DOUBLEBUFFER          00000001h The buffer is double-buffered. This flag and PFD_SUPPORT_GDI
;                                    are mutually exclusive in the current generic implementation.
;
;PFD_STEREO                00000002h The buffer is stereoscopic. This flag is not
;                                    supported in the current generic implementation.
;
;PFD_DRAW_TO_WINDOW        00000004h The buffer can draw to a window or device surface.
;
;PFD_DRAW_TO_BITMAP        00000008h The buffer can draw to a memory bitmap.
;
;PFD_SUPPORT_GDI           00000010h The buffer supports GDI drawing. This flag and PFD_DOUBLEBUFFER
;                                    are mutually exclusive in the current generic implementation.
;
;PFD_SUPPORT_OPENGL        00000020h The buffer supports OpenGL drawing.
;
;PFD_GENERIC_FORMAT        00000040h The pixel format is supported by the GDI software implementation,
;                                    which is also known as the generic implementation. If this bit is
;                                    clear, the pixel format is supported by a device driver or hardware.
;
;PFD_NEED_PALETTE          00000080h The buffer uses RGBA pixels on a palette-managed device. A logical
;                                    palette is required to achieve the best results for this pixel type.
;                                    Colors in the palette should be specified according to the values
;                                    of the cRedBits, cRedShift, cGreenBits, cGreenShift, cBluebits, and
;                                    cBlueShift members. The palette should be created and realized in
;                                    the device context before calling wglMakeCurrent.
;
;PFD_NEED_SYSTEM_PALETTE   00000100h Defined in the pixel format descriptors of hardware that supports one
;                                    hardware palette in 256-color mode only. For such systems to use
;                                    hardware acceleration, the hardware palette must be in a fixed order
;                                    (for example, 3-3-2) when in RGBA mode or must match the logical
;                                    palette when in color-index mode. When this flag is set, you must call
;                                    SetSystemPaletteUse in your program to force a one-to-one mapping of
;                                    the logical palette and the system palette. If your OpenGL hardware
;                                    supports multiple hardware palettes and the device driver can allocate
;                                    spare hardware palettes for OpenGL, this flag is typically clear.
;                                    This flag is not set in the generic pixel formats.
;
;PFD_SWAP_LAYER_BUFFERS    00000800h Indicates whether a device can swap individual layer planes with pixel
;                                    formats that include double-buffered overlay or underlay planes.
;                                    Otherwise all layer planes are swapped together as a group. When this
;                                    flag is set, wglSwapLayerBuffers is supported.
;
;PFD_GENERIC_ACCELERATED   00001000h The pixel format is supported by a device driver that accelerates
;                                    the generic implementation. If this flag is clear and the
;                                    PFD_GENERIC_FORMAT flag is set, the pixel format is supported by
;                                    the generic implementation only.
;
;Additional flags for use with ChoosePixelFormat only:
;
;PFD_DEPTH_DONTCARE        20000000h The requested pixel format can either have or not have a depth buffer.
;                                    To select a pixel format without a depth buffer, you must specify this
;                                    flag. The requested pixel format can be with or without a depth buffer.
;                                    Otherwise, only pixel formats with a depth buffer are considered.
;
;PFD_DOUBLEBUFFER_DONTCARE 40000000h The requested pixel format can be either single- or double-buffered.
;
;PFD_STEREO_DONTCARE       80000000h The requested pixel format can be either monoscopic or stereoscopic.
;
;-----------------------------------------

by the way, the example code on MSDN for ChoosePixelFormat violates some of the rules   ::)

dedndave

ok - fingers crossed   :redface:

i can open 6 instances and they all run pretty fast   :P

GoneFishing


dedndave

good to hear
so - the close button issue seems to be related to an over-flowing message queue
hopefully, the pfd flag changes make it work on Gunther's win7-64 machine

FORTRANS

Hi Dave,

   SmallOgl5 from Reply #108.  Back to a blank, black window
with Windows 2000, but it closes normally.  On XP it is similar to
last time, blank window until wiggled, then some rough triangle
stuff, can be closed normally.  CPU usage seems to be smaller,
~20% to ~50% when wiggled.

Regards,

Steve

dedndave

thanks Steve
i guess i can understand the win 2000 issue - but let's see if we can fix it
the xp issue, i don't understand - lol

i am going to make a special version for you to try on both machines.....

maybe you could get a screen shot of "rough triangle stuff" ?

FORTRANS

Hi Dave,

   Okay, tried to get a screen capture, using the Print Screen key.
Got only blank windows or a perfect triangle.  What it looks like is
pieces, horizontal slices, of multiple triangles spaced a little bit apart.
They appear dimmer than when a "good" version ran.  But as this
is a laptop, that could be the speed of the LCD.  That because the
grabbed triangle flashed to normal brightness.  A piece of a triangle,
or triangles, can also show up occasionally when there is mouse
movement around the window or other activity such as switching
between programs.

   At a rough guess, it looks kind of like it would if it is trying to draw
triangles way, way too fast, and pieces show up when the computer
tries to update the screen and gets busy enough to pause long enough
to have something drawn to the screen.  (Hope that makes sense.)

   A bit later I will try my other XP laptop.  It might provide another
data point.  (?)

Regards,

Steve N.

FORTRANS

Hi Dave,

   Oh, you are going to love this.  I reran the various versions
on my Win2k machine, and get different results.  The program's
behavior depends on whether it is started from the CLI in a window,
(blank) or from a CLI from a full screen session (various triangle
displays).  I knew this machine was a bit strange, but still...  Ick,
more tests to schedule.

Regards,

Steve N.

dedndave

on the one, it sounds like the LCD may be "submarined"
an effect caused on some older LCD's where updates are too fast (happened with mouse pointers a lot)

i slowed this version down to 10 mS per degree - see if that helps

also, this version creates a text file with complete OS and OpenGL versions and extensions
much appreciated if you can post the results or zip/attach   :P

dedndave

this is what mine looks like:
            Windows Version: 5.1.2600
                Platform ID: 2
Service Pack Version String: Service Pack 3
Service Pack Version Number: 3.0
                 Suite Mask: 00000100
               Product Type: 1
              Reserved Byte: 0

             OpenGL Version: 1.4.0 - Build 7.14.10.4764

          OpenGL Extensions:
GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_multitexture GL_ARB_point_parameters GL_ARB_shadow GL_ARB_texture_border_clamp GL_ARB_texture_compression
GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_dot3 GL_ARB_texture_env_crossbar GL_ARB_transpose_matrix
GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_window_pos GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_func_separate GL_EXT_blend_minmax
GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_compiled_vertex_array GL_EXT_cull_vertex GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_multi_draw_arrays
GL_EXT_packed_pixels GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap
GL_EXT_texture_compression_s3tc GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_filter_anisotropic GL_EXT_texture3D
GL_3DFX_texture_compression_FXT1 GL_IBM_texture_mirrored_repeat GL_NV_blend_square GL_NV_texgen_reflection GL_SGIS_generate_mipmap GL_WIN_swap_hint


the GL_EXTENSIONS call returns one big string with no Cr/Lf's - lol
i added some in the post to make it read a little better

FORTRANS

Quote from: dedndave on November 16, 2013, 02:32:35 AM
also, this version creates a text file with complete OS and OpenGL versions and extensions
much appreciated if you can post the results or zip/attach   :P

Hi Dave,

   Well, I hope you can appreciate the results I am attaching.  Four
computers, three tested as CLI in a window, CLI full screen, and
GUI double clicked.  One with just both CLI invocations.  Does not
make much sense to me.

Regards,

Steve

Siekmanski

Hi Dave,


            Windows Version: 6.2.9200
                Platform ID: 2
Service Pack Version String:
Service Pack Version Number: 0.0
                 Suite Mask: 00000300
               Product Type: 1
              Reserved Byte: 0

             OpenGL Version: 4.4.0

          OpenGL Extensions:
GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_ARB_arrays_of_arrays GL_ARB_base_instance
GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture
GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth
GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_debug_output
GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_buffers_blend
GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility
GL_ARB_ES3_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions
GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader
GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4
GL_ARB_get_program_binary GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex
GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2
GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect
GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object
GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_robust_buffer_access_behavior
GL_ARB_robustness GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture
GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counters GL_ARB_shader_bit_encoding GL_ARB_shader_draw_parameters
GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision
GL_ARB_query_buffer_object GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_lod
GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing
GL_ARB_shadow GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_border_clamp
GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression
GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array
GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float
GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample
GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg
GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle
GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced
GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit
GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader
GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos
GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra
GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax
GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access
GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit
GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled
GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters
GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels
GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color
GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_store GL_EXT_shadow_funcs
GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object
GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc
GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine
GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias
GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode
GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array
GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_import_sync_object GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat
GL_KHR_debug GL_KTX_buffer_region GL_NV_bindless_multi_draw_indirect GL_NV_bindless_texture GL_NV_blend_equation_advanced
GL_NV_blend_square GL_NV_compute_program5 GL_NV_conditional_render GL_NV_copy_depth_to_color GL_NV_copy_image
GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_ES1_1_compatibility GL_NV_explicit_multisample GL_NV_fence
GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2
GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_gpu_program4 GL_NV_gpu_program4_1 GL_NV_gpu_program5
GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent
GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object
GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart
GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_buffer_load
GL_NV_shader_storage_buffer_object GL_ARB_sparse_texture GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc
GL_NV_texture_env_combine4 GL_NV_texture_expand_normal GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_shader
GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_vertex_array_range
GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program
GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NVX_conditional_render
GL_NVX_gpu_memory_info GL_NVX_nvenc_interop GL_OES_compressed_ETC1_RGB8_texture GL_SGIS_generate_mipmap
GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum GL_WIN_swap_hint WGL_EXT_swap_control
Creative coders use backward thinking techniques as a strategy.

jj2007

One more...


            Windows Version: 5.1.2600
                Platform ID: 2
Service Pack Version String: Service Pack 3
Service Pack Version Number: 3.0
                 Suite Mask: 00000300
               Product Type: 1
              Reserved Byte: 0

             OpenGL Version: 1.4.0 - Build 4.14.10.4497

          OpenGL Extensions:
GL_ARB_depth_texture
GL_ARB_fragment_program
GL_ARB_multitexture
GL_ARB_point_parameters
GL_ARB_shadow
GL_ARB_texture_border_clamp
GL_ARB_texture_compression
GL_ARB_texture_cube_map
GL_ARB_texture_env_add
GL_ARB_texture_env_combine
GL_ARB_texture_env_dot3
GL_ARB_texture_env_crossbar
GL_ARB_transpose_matrix
GL_ARB_vertex_buffer_object
GL_ARB_vertex_program
GL_ARB_window_pos
GL_EXT_abgr
GL_EXT_bgra
GL_EXT_blend_color
GL_EXT_blend_func_separate
GL_EXT_blend_minmax
GL_EXT_blend_subtract
GL_EXT_clip_volume_hint
GL_EXT_compiled_vertex_array
GL_EXT_cull_vertex
GL_EXT_draw_range_elements
GL_EXT_fog_coord
GL_EXT_multi_draw_arrays
GL_EXT_packed_pixels
GL_EXT_rescale_normal
GL_EXT_secondary_color
GL_EXT_separate_specular_color
GL_EXT_shadow_funcs
GL_EXT_stencil_two_side
GL_EXT_stencil_wrap
GL_EXT_texture_compression_s3tc
GL_EXT_texture_env_add
GL_EXT_texture_env_combine
GL_EXT_texture_filter_anisotropic
GL_EXT_texture3D
GL_3DFX_texture_compression_FXT1
GL_IBM_texture_mirrored_repeat
GL_NV_blend_square
GL_NV_texgen_reflection
GL_SGIS_generate_mipmap
GL_WIN_swap_hint