如何在桌面上创建OpenGL ES 2上下文?

时间:2015-09-13 09:08:27

标签: opengl opengl-es-2.0 x11

是否可以在桌面Linux上创建 OpenGL ES 2 上下文?

我的上下文相关代码是这样的:

<iframe src="mysimulator/www/index.html"></iframe>

但它失败了。

然而,这成功了:

@ECHO OFF
COLOR 01
:Menu
TITLE PixelShooter Launcher
CLS
ECHO PIXELSHOOTER
ECHO.
ECHO.
ECHO.
ECHO 1 - Start Game
ECHO 2 - Options
ECHO 3 - EXIT
SET /P name=Please Make A Selection [1,2,3]:  
IF %name%==1 (GOTO :tskmngr)
IF %name%==2 (GOTO :Options)
IF %name%==3 (GOTO :EOF)
CLS
TITLE INVALID SELECTION
COLOR FC
ECHO "%name%" isn't a valid selection choice, please try a valid selection.
ECHO We'll return to the previous menu.
PAUSE
GOTO :Menu

:tskmngr
TITLE PixelShooter Launcher
CLS
ECHO.
ECHO.
ECHO.
ECHO.
ECHO Boot Game? (Y/N)
SET /P boot=Boot Game? [Y/N]:  
IF %boot%==Y (START :tskmngr)
if %boot%==N (GOTO :Menu)
CLS
TITLE INVALID SELECTION
COLOR FC
ECHO "%boot%" isn't a valid selection choice, please try a valid selection.
ECHO We'll return to the previous menu.
PAUSE
GOTO :tskmngr
:Options
TITLE PixelShooter Launcher
CLS
ECHO.
ECHO.
ECHO.
ECHO.
SET /P options=Start Options? [Y/N]:  
IF %options%==Y (START AppData\Roaming\Pixelshooter\config.ini)
IF %options%==N (GOTO :Menu)
CLS
TITLE INVALID SELECTION
COLOR FC
ECHO "%boot%" isn't a valid selection choice, please try a valid selection.
ECHO We'll return to the previous menu.
PAUSE
GOTO :Options`

我在这里做错了什么?

我正在尝试使用NVIDIA GTX 750 Ti GPU在Fedora 22 x86_64上执行此操作。

更新

以下是基于以下答案创建OpenGL ES 2.0上下文的工作代码:

https://github.com/manmohanbishnoi/my-experiments/blob/master/OpenGL%20ES%20context%20on%20Desktop/opengl_es2.c

1 个答案:

答案 0 :(得分:3)

您正在请求OpenGL ES 4.5版上下文,该上下文不存在。来自GLX_EXT_create_context_es2_profile extension spec:

  

如果请求的版本是有效且受支持的OpenGL-ES版本,       并且graphMax = followers * 1.1; graphMin = 0; CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace*)graph.defaultPlotSpace; NSTimeInterval intervalSpan = [[graphDates lastObject] timeIntervalSinceReferenceDate] - [[graphDates firstObject] timeIntervalSinceReferenceDate]; plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0) length:CPTDecimalFromDouble(intervalSpan)]; plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(graphMin) length:CPTDecimalFromInt(graphMax)]; 位设置在       graphDates属性(见下文),然后是上下文       返回将实现所请求的OpenGL ES版本。

GLX_CONTEXT_ES_PROFILE_BIT_EXT实际上是一种红鲱鱼:

  

第3版,2012/03/28

     
      
  • 添加对任何OpenGL-ES版本的支持,而不是   只是版本2.0。 别名GLX_CONTEXT_PROFILE_MASK_ARB   GLX_CONTEXT_ES2_PROFILE_BIT_EXT 和扩展名   GLX_CONTEXT_ES2_PROFILE_BIT_EXT   GLX_CONTEXT_ES_PROFILE_BIT_EXT
  •   

所以它在配置文件中根本没有选择版本,版本和配置文件正常工作......