21 #include "../../SDL_internal.h" 23 #if SDL_VIDEO_DRIVER_EMSCRIPTEN 35 Uint32 Rmask, Gmask, Bmask, Amask;
53 *format = surface_format;
55 *pitch = surface->
pitch;
66 return SDL_SetError(
"Couldn't find framebuffer surface for window");
76 if (!Module[
'SDL2']) Module[
'SDL2'] = {};
77 var SDL2 = Module[
'SDL2'];
78 if (SDL2.ctxCanvas !== Module[
'canvas']) {
79 SDL2.ctx = Module[
'createContext'](Module[
'canvas'], false, true);
80 SDL2.ctxCanvas = Module[
'canvas'];
82 if (SDL2.w !== w || SDL2.h !== h || SDL2.imageCtx !== SDL2.ctx) {
83 SDL2.image = SDL2.ctx.createImageData(w, h);
86 SDL2.imageCtx = SDL2.ctx;
88 var data = SDL2.image.data;
89 var
src = pixels >> 2;
92 if (typeof CanvasPixelArray !==
'undefined' && data instanceof CanvasPixelArray) {
100 data[
dst ] = val & 0xff;
101 data[
dst+1] = (val >> 8) & 0xff;
102 data[
dst+2] = (val >> 16) & 0xff;
108 if (SDL2.data32Data !== data) {
109 SDL2.data32 =
new Int32Array(data.buffer);
110 SDL2.data8 =
new Uint8Array(data.buffer);
112 var data32 = SDL2.data32;
122 data32.set(HEAP32.subarray(
src,
src +
num));
123 var data8 = SDL2.data8;
154 SDL2.ctx.putImageData(SDL2.image, 0, 0);
156 }, surface->
w, surface->
h, surface->
pixels);
GLfloat GLfloat GLfloat GLfloat h
A collection of pixels used in software blitting.
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
void Emscripten_DestroyWindowFramebuffer(_THIS, SDL_Window *window)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
#define SDL_GetWindowSize
int Emscripten_CreateWindowFramebuffer(_THIS, SDL_Window *window, Uint32 *format, void **pixels, int *pitch)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int in j)
GLubyte GLubyte GLubyte GLubyte w
#define SDL_PixelFormatEnumToMasks
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)
#define SDL_CreateRGBSurface
EGLSurface EGLNativeWindowType * window
The type used to identify a window.
EGLSurface EGLint * rects
int Emscripten_UpdateWindowFramebuffer(_THIS, SDL_Window *window, const SDL_Rect *rects, int numrects)
A rectangle, with the origin at the upper left.