DevCon for OS/2 - Developer Connection |
Operating systems: ArcaOS, eComStation, IBM OS/2 Warp |
|
|
|
OpenGL for eComStation / IBM OS/2 Warp
OpenGL OS/2 Developer reference guideCONTENTS1. PrefaceOpenGL (Open Graphics Library) is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics.
2. Development tools - C/C++ compiler and environments
MORE INFO: Development Tools (RUS) 3. OS/2 OpenGL API support, differences, stability, bugsNote that all API discussed below are mostly software, with some kind of 2D-acceleration only.
4. Additional utility libraries, toolkitsUtility libraries provides interface between OpenGL 3D subsystem and subsystem of OS/2 for:
See an EDM/2 article chapter: OpenGL and OS/2: The Utility Libraries.
5. Programming notes
6. IBM OpenGL DocumentationOPENGL.DOC from IBM OS/2 Warp 4
OpenGL
------
Hardware and Software Requirements
----------------------------------
- 9MB DASD, 16MB RAM
- fast 486, Pentium, or PentiumPro
- installation of Base Multimedia Support
- screen depth of 256, 64K, or 16M colors (8, 16, or 24 bit)
PentiumPro Performance
----------------------
OpenGL performance on a PentiumPro system may be increased by installing
the OpenGL PentiumPro Driver. The OpenGL PentiumPro Driver is located on
the Device Driver Pack CD-ROM included with Warp 4. The driver and
installation instructions can be found in:
Device Solutions->IBM Corporation->OpenGL PentiumPro Driver
Important Troubleshooting Tips
------------------------------
OpenGL makes a lot of demands on the setup of your system, and when the setup
reported by the graphics device driver does not exactly match the actual one,
problems can arise. If OpenGL does not render, or if the image looks incorrect,
one of the following items may help. These settings will override whatever
OpenGL queries from your graphics device, so do not use them unless you are
having trouble.
- A "squished" OpenGL image is most likely the result of an incorrect
bits-per-pixel report from your OS/2 graphics device driver when
running in 24 bit. In this case, setting OGL_BIT_COUNT=32 in your
environment by adding "SET OGL_BIT_COUNT=32" to the config.sys should
correct the image. Please be aware that this statement should not be used
when in 8 or 16 bit.
- An OpenGL rendering that has a repeated image that goes beyond the bounds
of the window is probably the result of an incorrect scanline size report.
Scanline sizes are usually the product of the horizontal screen resolution
and the screen depth in bytes-per-pixel (a 1024x768x64k setting may use a
scanline size of 2048, since 64K is 2**16 which means every pixel is
comprised of 2 bytes). In this case, adding "SET OGL_SCANLINE_SIZE=2048"
to the config.sys should correct the problem. Please be aware that a
OGL_SCANLINE_SIZE setting that works in one screen resolution and depth
setting will not work in another.
- When running with a color depth of 8 bit, OpenGL will attempt to preserve
the PM colors used on the desktop, but as a result, OpenGL may not receive
all of the colors in its palette. The results obtained are very graphic card
dependent. If OpenGL is not receiving all of the colors it needs for an
image, OpenGL can force PM to use the OpenGL colors by setting
"OGL_OVERRIDE_COLORS=1" in your environment. Be aware that the PM desktop
will flash and the PM colors may not be preserved when the OpenGL window
has focus, but the OpenGL window will obtain all of its colors. Setting
"OGL_OVERRIDE_COLORS=" will reset the overriding of PM colors. But in all
cases the best visual results will be obtained when
"System Setup->System->256 Colors->Workplace shell palette aware" is
checked (see Helpful Information).
Helpful Information
-------------------
When running in 8 bit (256 colors), the following check box should be selected
for optimal visual results:
"System Setup->System->256 Colors->Workplace shell palette aware"
The best OpenGL performance will be attained with a PCI graphics card that is
not bank-switched at the desired screen resolution and depth. When running
in 24 bit, a non packed pixel (32 bot) device driver and graphics card
combination will yield better performance then a packed pixel (24 bit) one.
Running OpenGL on a Matrox Millennium in 24 bit requires that DIVE support
is enabled. See the documentation that came your Matrox for information on
how to enable DIVE support in 24 bit.
Summary of Settable Environment Variables
-----------------------------------------
The following strings are scanned for in the current environment by OpenGL,
these can be set by using the "SET" command in OS/2 (issue "help set" in an
OS/2 Window for information on the "SET" command). may help. These settings
will override whatever OpenGL queries from your graphics device, so do not
use them unless you are having trouble.
OGL_BIT_COUNT - used by OpenGL to replace the bits-per-pixel report from the
graphics device driver. Primary use is for when a 32 bit-per-pixel (non-packed)
setup actually reports 24 bpp (packed). See "Important Troubleshooting Tips"
section.
OGL_SCANLINE_SIZE - used by OpenGL to replace the scanline size report from
the graphics device driver. See "Important Troubleshooting Tips" section.
OGL_VIDEO_MEM_SIZE - used by OpenGL to enable PentiumPro specific optimizations.
Has no affect on other CPU's. See "PentiumPro Performance" section.
OGL_OVERRIDE_COLORS - used by OpenGL to override the PM colors in the color
palette. Only applicable when running in 8 bit. See "Important Troubleshooting Tips"
section.
README.FYI from IBM OS/2 OpenGL 1.1 update beta
This is the "gold" release of OpenGL 1.1 for OS2. Please forwared any
problems to IBM support or mail a description of the problem and a
testcase to - os2-opengl@utsi.com.
Important Troubleshooting Tips
------------------------------
OpenGL makes a lot of demands on the setup of your system, and when
the setup reported by the graphics device driver does not exactly
match the actual one, problems can arise. If OpenGL does not render,
or if the image looks incorrect, one of the following items may help.
These settings will override whatever OpenGL queries from your graphics
device, so do not use them unless you are having trouble.
- A "squished" OpenGL image is most likely the result of an incorrect
bits-per-pixel report from your OS/2 graphics device driver when
running in 24 bit. In this case, setting OGL_BIT_COUNT=32 in your
environment by adding "SET OGL_BIT_COUNT=32" to the config.sys should
correct the image. Please be aware that this statement should not be used
when in 8 or 16 bit.
- An OpenGL rendering that has a repeated image that goes beyond the bounds
of the window is probably the result of an incorrect scanline size report.
Scanline sizes are usually the product of the horizontal screen resolution
and the screen depth in bytes-per-pixel (a 1024x768x64k setting may use a
scanline size of 2048, since 64K is 2**16 which means every pixel is
comprised of 2 bytes). In this case, adding "SET OGL_SCANLINE_SIZE=2048"
to the config.sys should correct the problem. Please be aware that a
OGL_SCANLINE_SIZE setting that works in one screen resolution and depth
setting will not work in another.
- When running with a color depth of 8 bit, OpenGL will attempt to preserve
the PM colors used on the desktop, but as a result, OpenGL may not receive
all of the colors in its palette. The results obtained are very graphic
card dependent. If OpenGL is not receiving all of the colors it needs
for an image, OpenGL can force PM to use the OpenGL colors by setting
"OGL_OVERRIDE_COLORS=1" in your environment. Be aware that the PM desktop
will flash and the PM colors may not be preserved when the OpenGL window
has focus, but the OpenGL window will obtain all of its colors. Setting
"OGL_OVERRIDE_COLORS=" will reset the overriding of PM colors. But in all
cases the best visual results will be obtained when
"System Setup->System->256 Colors->Workplace shell palette aware" is
checked (see Helpful Information).
Helpful Information
-------------------
When running in 256 color mode, the following check box should be selected
for optimal visual results:
"System Setup->System->256 Colors->Workplace shell palette aware"
The best OpenGL performance will be attained with a PCI graphics card that
is not bank-switched at the desired screen resolution and depth. When
running in 24 bit, a non packed pixel (32 bot) device driver and graphics
card combination will yield better performance then a packed pixel (24 bit)
one.
Running OpenGL on a Matrox Millennium in 24 bit requires that DIVE support
is enabled. See the documentation that came your Matrox for information on
how to enable DIVE support in 24 bit.
Summary of Settable Environment Variables
-----------------------------------------
The following strings are scanned for in the current environment by OpenGL,
these can be set by using the "SET" command in OS/2 (issue "help set" in an
OS/2 Window for information on the "SET" command). may help. These settings
will override whatever OpenGL queries from your graphics device, so do not
use them unless you are having trouble.
OGL_BIT_COUNT - used by OpenGL to replace the bits-per-pixel report from the
graphics device driver. Primary use is for when 32 bpp(non-packed)
setup actually reports 24 bpp (packed). See "Important Troubleshooting Tips"
section.
OGL_SCANLINE_SIZE - used by OpenGL to replace the scanline size report from
the graphics device driver. See "Important Troubleshooting Tips" section.
OGL_OVERRIDE_COLORS - used by OpenGL to override the PM colors in the color
palette. Only applicable when running in 8 bit. See "Important
Troubleshooting Tips" section.
OGL-DDK.ps from IBM OS/2 OpenGL DDK The OpenGL for OS/2 device driver sample consists of a set of source code and binary module components that can be adapted by IHVs to provide accelerated 3D graphics device support for OpenGL 1.1 on OS/2. The device driver sample targets an Omnicomp 3DEMON adapter which uses the 3Dlabs GLINT 300SX chipset. This document describes the architecture of OpenGL on OS/2, the design and operation of the sample driver for the Omnicomp 3DEMON adapter, and it suggests how different 3D graphics hardware can be exploited using the sample driver as a guide. Features of the device driver sample include: * OpenGL acceleration in an OS/2 window * accelerated color and depth buffer clears * accelerated flat and Gouraud shaded triangles, with and without depth buffer enabled * fullscreen double buffering synchronized to vertical retrace * asynchronous DMA operation for GLINT The sample driver includes: * source code for an OS/2 GRADD display driver (GLIGRADD) for PM and Win-OS/2 * source code for PGL for OpenGL on OS/2 * source code for complete rasterizer support for OpenGL on OS/2; with both full software function and sample GLINT hardware acceleration (requires SGI OpenGL source license and IBM nondisclosure agreement) * source code for a Rendering Context Manager (RCM) to handle different rendering contexts using an accelerated rasterizer * source code for a physical device driver (PDD) to handle DMA transfers and vertical retrace interrupts The GLPIPE.DLL module, which provides geometry pipeline processing for OpenGL on OS/2, is provided as a binary-only module. Also, IBM continues to provide a binary-only alternate RASTER.DLL module, which is a highly optimized software-only rasterizer for OpenGL on OS/2 7. glxinfo OpenGL, GLU reportsglxinfo - display info about a GL, GLU extensions and OpenGL renderer. glxinfo lists information about the GL, GLU extensions, OpenGL capabilities, and the OpenGL renderer. The GLX and renderer info includes the version and extension attributes. report from IBM OpenGL 1.0
OpenGL vendor string: IBM
OpenGL renderer string: SoftRaster
OpenGL version string: 1.0.0
OpenGL extensions:
GL_EXT_texture_object, GL_EXT_vertex_array, GL_EXT_rescale_normal
GLU version string: OS/2
GLU extensions:
max texture size: 1024x1024
max viewport dims: 2047x2047
max modelview stack depth: 32
max projection stack depth: 4
max texture stack depth: 4
max attrib stack depth: 16
max name stack depth: 128
max list nesting: 64
max eval order: 16
max pixel map table: 4096
max lights: 8
max clip planes: 6
aux buffers: 0
subpixel bits: 4
report from IBM OpenGL 1.1 update beta
OpenGL vendor string: IBM
OpenGL renderer string: SoftRaster
OpenGL version string: 1.1.0
OpenGL extensions:
GL_EXT_texture_object, GL_EXT_vertex_array, GL_EXT_rescale_normal,
GL_IBM_rasterpos_clip, GL_EXT_abgr, GL_EXT_blend_logic_op,
GL_EXT_polygon_offset, GL_EXT_subtexture, GL_EXT_blend_subtract,
GL_EXT_blend_minmax
GLU version string: OS/2
GLU extensions:
max texture size: 1024x1024
max viewport dims: 2047x2047
max modelview stack depth: 32
max projection stack depth: 4
max texture stack depth: 4
max attrib stack depth: 16
max client attrib stack depth: 16
max name stack depth: 128
max list nesting: 64
max eval order: 16
max pixel map table: 4096
max lights: 8
max clip planes: 6
aux buffers: 0
subpixel bits: 4
report from WarpMesaGL OpenGL 1.4 [Mesa3D 5.1]
OpenGL vendor string: Evgeny Kotsuba
OpenGL renderer string: WarpMesaGL OS/2 PM DIVE // when bUseDive = 1
OpenGL renderer string: WarpMesaGL OS/2 PM GPI // when bUseDive = 0
OpenGL version string: 1.4 Mesa 5.1
OpenGL extensions:
GL_ARB_depth_texture, GL_ARB_fragment_program, GL_ARB_imaging,
GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_point_parameters,
GL_ARB_shadow, GL_ARB_shadow_ambient, 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_crossbar, GL_ARB_texture_env_dot3,
GL_ARB_texture_mirrored_repeat, GL_ARB_transpose_matrix,
GL_ARB_vertex_program, GL_ARB_window_pos, GL_ATI_texture_mirror_once,
GL_ATI_texture_env_combine3, GL_EXT_abgr, GL_EXT_bgra,
GL_EXT_blend_color, GL_EXT_blend_func_separate, GL_EXT_blend_logic_op,
GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_clip_volume_hint,
GL_EXT_convolution, GL_EXT_compiled_vertex_array,
GL_EXT_depth_bounds_test, GL_EXT_fog_coord, GL_EXT_histogram,
GL_EXT_multi_draw_arrays, GL_EXT_packed_pixels, GL_EXT_paletted_texture,
GL_EXT_point_parameters, GL_EXT_polygon_offset, GL_EXT_rescale_normal,
GL_EXT_secondary_color, GL_EXT_shadow_funcs,
GL_EXT_shared_texture_palette, GL_EXT_stencil_wrap,
GL_EXT_stencil_two_side, GL_EXT_texture3D, GL_EXT_texture_edge_clamp,
GL_EXT_texture_env_add, GL_EXT_texture_env_combine,
GL_EXT_texture_env_dot3, GL_EXT_texture_object, GL_EXT_texture_lod_bias,
GL_EXT_vertex_array, GL_HP_occlusion_test, GL_IBM_rasterpos_clip,
GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate,
GL_MESA_pack_invert, GL_MESA_resize_buffers, GL_MESA_ycbcr_texture,
GL_MESA_window_pos, GL_NV_blend_square, GL_NV_point_sprite,
GL_NV_texture_rectangle, GL_NV_texgen_reflection, GL_NV_fragment_program,
GL_NV_vertex_program, GL_NV_vertex_program1_1, GL_SGI_color_matrix,
GL_SGI_color_table, GL_SGI_texture_color_table, GL_SGIS_generate_mipmap,
GL_SGIS_pixel_texture, GL_SGIS_texture_border_clamp,
GL_SGIS_texture_edge_clamp, GL_SGIX_depth_texture, GL_SGIX_pixel_texture,
GL_SGIX_shadow, GL_SGIX_shadow_ambient
GLU version string: 1.3
GLU extensions:
GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess
max texture size: 2048x2048
max viewport dims: 2048x2048
max modelview stack depth: 32
max projection stack depth: 32
max texture stack depth: 10
max attrib stack depth: 16
max client attrib stack depth: 16
max name stack depth: 64
max list nesting: 64
max eval order: 30
max pixel map table: 256
max lights: 8
max clip planes: 6
aux buffers: 0
subpixel bits: 4
report from SciTech Software OpenGL 1.5 [Mesa3D 6.2.1]
OpenGL vendor string: SciTech Software, Inc.
OpenGL renderer string: SciTech SNAP Graphics 3.1 /x86/MMX/SSE
OpenGL version string: 1.5 Mesa 6.2.1
OpenGL extensions:
GL_ARB_depth_texture, GL_ARB_fragment_program, GL_ARB_imaging,
GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query,
GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shadow,
GL_ARB_shadow_ambient, 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_crossbar, GL_ARB_texture_env_dot3,
GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two,
GL_ARB_texture_rectangle, 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_equation_separate, GL_EXT_blend_func_separate,
GL_EXT_blend_logic_op, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
GL_EXT_clip_volume_hint, GL_EXT_compiled_vertex_array, GL_EXT_convolution,
GL_EXT_copy_texture, GL_EXT_depth_bounds_test, GL_EXT_draw_range_elements,
GL_EXT_fog_coord, GL_EXT_histogram, GL_EXT_multi_draw_arrays,
GL_EXT_packed_pixels, GL_EXT_paletted_texture, GL_EXT_pixel_buffer_object,
GL_EXT_point_parameters, GL_EXT_polygon_offset, GL_EXT_rescale_normal,
GL_EXT_secondary_color, GL_EXT_separate_specular_color,
GL_EXT_shadow_funcs, GL_EXT_shared_texture_palette,
GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, GL_EXT_subtexture,
GL_EXT_texture, GL_EXT_texture3D, GL_EXT_texture_edge_clamp,
GL_EXT_texture_env_add, GL_EXT_texture_env_combine,
GL_EXT_texture_env_dot3, GL_EXT_texture_lod_bias,
GL_EXT_texture_mirror_clamp, GL_EXT_texture_object,
GL_EXT_texture_rectangle, GL_EXT_vertex_array, GL_APPLE_packed_pixels,
GL_ATI_blend_equation_separate, GL_ATI_texture_env_combine3,
GL_ATI_texture_mirror_once, GL_HP_occlusion_test,
GL_IBM_multimode_draw_arrays, GL_IBM_rasterpos_clip,
GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate,
GL_MESA_pack_invert, GL_MESA_program_debug, GL_MESA_resize_buffers,
GL_MESA_ycbcr_texture, GL_MESA_window_pos, GL_NV_blend_square,
GL_NV_fragment_program, GL_NV_light_max_exponent, GL_NV_point_sprite,
GL_NV_texture_rectangle, GL_NV_texgen_reflection, GL_NV_vertex_program,
GL_NV_vertex_program1_1, GL_SGI_color_matrix, GL_SGI_color_table,
GL_SGI_texture_color_table, GL_SGIS_generate_mipmap,
GL_SGIS_pixel_texture, GL_SGIS_texture_border_clamp,
GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SGIX_depth_texture,
GL_SGIX_pixel_texture, GL_SGIX_shadow, GL_SGIX_shadow_ambient,
GL_SUN_multi_draw_arrays
GLU version string: 1.3
GLU extensions:
GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess
max texture size: 2048x2048
max viewport dims: 4096x4096
max modelview stack depth: 32
max projection stack depth: 32
max texture stack depth: 10
max attrib stack depth: 16
max client attrib stack depth: 16
max name stack depth: 64
max list nesting: 64
max eval order: 30
max pixel map table: 256
max lights: 8
max clip planes: 6
aux buffers: 0
subpixel bits: 4
built by NatteFrost at 2011.03.13
|
|
||
|
ArcaOS 5.1.1 - DOS Опять работает
DOS виртуальная машина опять работает (работала на древних компьютерах Core 2 Duo). Для этого надо устанавливать ArcaOS в режиме UEFI. |
FOC выбор файловeCo Software создала File Open Container - современный диалог для выбора файлов. |
// надо на ENG!!
Купить программу OS/2:
DVD/CD Toys
|
|
Каждая конференция влияет на будущее OS/2. Люди готовили доклады несколько месяцев, потратили деньги на поездку в другой город или другую страну. Конференция даёт импульс сообществу на несколько месяцев вперёд. Результаты встречи обсуждаются в сообществе еще несколько недель. |
Warpstock Europe 2016Interview with Dmitry Kuminov |