da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsync"""
c7814cf6e1240a519cbec0441e033d0e2470ed00vboxsyncCopyright (C) 2009-2012 Oracle Corporation
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsync
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsyncThis file is part of VirtualBox Open Source Edition (OSE), as
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsyncavailable from http://www.virtualbox.org. This file is free software;
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsyncyou can redistribute it and/or modify it under the terms of the GNU
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsyncGeneral Public License (GPL) as published by the Free Software
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsyncFoundation, in version 2 as it comes in the "COPYING" file of the
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsyncVirtualBox OSE distribution. VirtualBox OSE is distributed in the
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsynchope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsync"""
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncimport sys
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#Note, this should match the fakedri_glxfuncsList.h order
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncglx_functions = [
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"CopyContext",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"UseXFont",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#"GetDriverConfig",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetProcAddress",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"QueryExtension",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"IsDirect",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"DestroyGLXPbufferSGIX",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"QueryGLXPbufferSGIX",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"CreateGLXPixmap",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"CreateGLXPixmapWithConfigSGIX",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"QueryContext",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"CreateContextWithConfigSGIX",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"SwapBuffers",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"CreateNewContext",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"SelectEventSGIX",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetCurrentDrawable",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"ChooseFBConfig",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"WaitGL",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetFBConfigs",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"CreatePixmap",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetSelectedEventSGIX",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetCurrentReadDrawable",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetCurrentDisplay",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"QueryServerString",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"CreateWindow",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"SelectEvent",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetVisualFromFBConfigSGIX",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetFBConfigFromVisualSGIX",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"QueryDrawable",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"CreateContext",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetConfig",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"CreateGLXPbufferSGIX",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"CreatePbuffer",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"ChooseFBConfigSGIX",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"WaitX",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetVisualFromFBConfig",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#"GetScreenDriver",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetFBConfigAttrib",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetCurrentContext",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetClientString",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"DestroyPixmap",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"MakeCurrent",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"DestroyContext",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetProcAddressARB",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"GetSelectedEvent",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"DestroyPbuffer",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"DestroyWindow",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"DestroyGLXPixmap",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"QueryVersion",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"ChooseVisual",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"MakeContextCurrent",
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync"QueryExtensionsString",
43fc25b9500f9cc190aa7c8cb084f97c006816e1vboxsync"GetFBConfigAttribSGIX",
43fc25b9500f9cc190aa7c8cb084f97c006816e1vboxsync"FreeMemoryMESA",
43fc25b9500f9cc190aa7c8cb084f97c006816e1vboxsync"QueryContextInfoEXT",
43fc25b9500f9cc190aa7c8cb084f97c006816e1vboxsync"ImportContextEXT",
43fc25b9500f9cc190aa7c8cb084f97c006816e1vboxsync"GetContextIDEXT",
43fc25b9500f9cc190aa7c8cb084f97c006816e1vboxsync"MakeCurrentReadSGI",
43fc25b9500f9cc190aa7c8cb084f97c006816e1vboxsync"AllocateMemoryMESA",
43fc25b9500f9cc190aa7c8cb084f97c006816e1vboxsync"GetMemoryOffsetMESA",
43fc25b9500f9cc190aa7c8cb084f97c006816e1vboxsync"CreateGLXPixmapMESA",
43fc25b9500f9cc190aa7c8cb084f97c006816e1vboxsync"GetCurrentDisplayEXT",
43fc25b9500f9cc190aa7c8cb084f97c006816e1vboxsync"FreeContextEXT"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync];
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncprint '%include "iprt/asmdefs.mac"'
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncprint ""
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncprint "%ifdef RT_ARCH_AMD64"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncprint "extern glxim"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncprint "%else ; X86"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncprint "extern glxim"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncprint "%endif"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncprint ""
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncfor index in range(len(glx_functions)):
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync func_name = glx_functions[index]
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync print "BEGINPROC_EXPORTED vbox_glX%s" % func_name
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync print "%ifdef RT_ARCH_AMD64"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync print "\tmov \trax, qword glxim+%d" % (8*index)
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync print "\tjmp \t[rax]"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync print "%else ; X86"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync print "\tmov \teax, dword glxim+%d" % (4*index)
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync print "\tjmp \t[eax]"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync print "%endif"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync print "ENDPROC vbox_glX%s" % func_name
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync print ""
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync