Mercurial > pub > dyncall > bindings
view R/rdyncall/demo/gles.R @ 63:9b6cdffd30dd
- further fixes of inccorect overflow errors for int (and long on LLP64 systems)
* prev commit had bugs
* added overflow tests for also int, long, long long (for both, lp64 and llp64)
- while at it, fixing a reference leak when not using python with utf8 caching
author | Tassilo Philipp |
---|---|
date | Sun, 19 May 2024 15:33:18 +0200 |
parents | 0cfcc391201f |
children |
line wrap: on
line source
library(rdyncall) dynport(SDL) dynport(EGL) dynbind("X11", "XOpenDisplay(Z)p;") init <- function() { SDL_Init(SDL_INIT_VIDEO) srf <- SDL_SetVideoMode(640,480,32,SDL_SWSURFACE) dpy <- XOpenDisplay(NULL) egl <- eglGetDisplay(dpy) if (is.nullptr(egl)) { error("failed: eglGetDisplay") } status <- eglInitialize(egl,NULL,NULL) if (!status) { error("failed: eglInitialize") } numConfigOuts <- integer(1) g_configAttribs <- as.integer(c( EGL_RED_SIZE, 5, EGL_GREEN_SIZE, 6, EGL_BLUE_SIZE, 5, EGL_DEPTH_SIZE, 16, EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT, EGL_BIND_TO_TEXTURE_RGBA, EGL_TRUE, EGL_NONE )) g_eglConfig <- raw(4) s <- eglChooseConfig(egl, g_configAttribs, g_eglConfig, 1, numConfigOuts) if (s != EGL_TRUE || numConfigOuts == 0) { error("failed: eglChooseConfig") } } init()