2012-04-13 20 views
2

GLX_EXT_texture_from_pixmapに問題があります。 EXT_texture_from_pixmap specificationによれば、私はGLXPixmapをOpenGLテクスチャとして使うことができます。 しかし、ステージをリンク時に私が取得:CでGLX_EXT_texture_from_pixmapを使ってOpenGLテクスチャとしてX11 Pixmapを使う方法は?

$ gcc -Wall -o uwm main.c -lX11 -lXext -lXcomposite -lXfixes -lGL -lGLU 
... 
main.c:98:2: warning: implicit declaration of function 'glXBindTexImageEXT' [-Wimplicit-function-declaration] 
main.c:(.text+0x651): undefined reference to `glXBindTexImageEXT' 

私がチェックしているもの:

  • GL/glx.h定義glXBindTexImageEXT ...:

    $ grep -l glXBindTexImageEXT /usr/include/GL/* 
    /usr/include/GL/glxext.h 
    /usr/include/GL/glx.h 
    
  • ...どのFedora 16のmesa-libGL-develパッケージの一部です:

    $ rpm -qf /usr/include/GL/glx.h 
    mesa-libGL-devel-7.11.2-3.fc16.x86_64 
    
  • ...含まれている必要があります(私は仮定)はlibGL.soも含むglXBindTexImageEXT記号:

    $ rpm -ql mesa-libGL-devel-7.11.2-3.fc16.x86_64 | grep '.so$' 
    /usr/lib64/libGL.so 
    
  • ...そうではありません。しかし、

    $ objdump -T /usr/lib64/libGL.so | grep glXBindTexImageEXT 
    $ nm /usr/lib64/libGL.so 
    nm: /usr/lib64/libGL.so: no symbols 
    

Gnome 3はこのマシンで動作しますを有効にしましたを合成しました。だから私の質問はあり

$ glxinfo | grep GLX_EXT_texture_from_pixmap -B 10 
name of display: :0.0 
display: :0 screen: 0 
direct rendering: Yes 
server glx vendor string: SGI 
server glx version string: 1.4 
server glx extensions: 
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, 
-- 
    GLX_SGIX_visual_select_group, GLX_INTEL_swap_event 
client glx vendor string: Mesa Project and SGI 
client glx version string: 1.4 
client glx extensions: 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_framebuffer_sRGB, 
    GLX_MESA_copy_sub_buffer, GLX_MESA_multithread_makecurrent, 
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control, 
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync, 
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
    GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap, 
    GLX_INTEL_swap_event 
GLX version: 1.4 
GLX extensions: 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, 
    GLX_MESA_multithread_makecurrent, GLX_MESA_swap_control, 
    GLX_OML_swap_method, GLX_OML_sync_control, GLX_SGI_make_current_read, 
    GLX_SGI_swap_control, GLX_SGI_video_sync, GLX_SGIS_multisample, 
    GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, 
    GLX_EXT_texture_from_pixmap 

  • はそれがglXBindTexImageEXT despiteGLX_EXT_texture_from_pixmapは、少なくともで(有効に含まれてlibGL.so ないためを期待されている

    私のマシンはGLX_EXT_texture_from_pixmap拡張子を持ちますScientificLinux 6.2、Fedora 16、Ubuntu 10.04をチェックしましたか?)

  • X11 PixmapをOpenGLテクスチャとして使用する方法はどうですか?

答えて

1

これは拡張機能なので、信頼性の高い方法は拡張メカニズムによるものです。 glXGetProcAddressと友達。 GLEWのようなすぐ使える拡張ローダーを使うことをお勧めします。

関連する問題