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()