FTEQW
Documentation of the FTE engine source tree.
ftejslib.h
Go to the documentation of this file.
1//emscripten's download mechanism lacks usable progress indicators.
2void emscriptenfte_async_wget_data2(const char *url, void *ctx, void (*onload)(void*ctx,int buf), void (*onerror)(void*ctx,int code), void (*onprogress)(void*ctx,int prog,int total));
3
4//changes the page away from quake (oh noes!) or downloads something.
5void emscriptenfte_window_location(const char *url);
6
7//filesystem buffers are implemented in javascript so that we are not bound by power-of-two heap limitations quite so much.
8//also, we can't use emscripten's stdio because it reserves 16m file handles or something.
9//these buffers do not track file offsets nor file access permissions.
11int emscriptenfte_buf_open(const char *name, int createifneeded); //open
12int emscriptenfte_buf_rename(const char *oldname, const char *newname); //rename files (if it was open, the handle now refers to the new file instead)
13int emscriptenfte_buf_delete(const char *fname); //delete the named file. there may be problems if its currently open
15void emscriptenfte_buf_pushtolocalstore(int handle); //make a copy in the browser's local storage, if possible.
16unsigned int emscriptenfte_buf_getsize(int handle); //get the size of the file buffer
17int emscriptenfte_buf_read(int handle, int offset, void *data, int len);//read data
18int emscriptenfte_buf_write(int handle, int offset, const void *data, int len);//write data. no access checks.
19void emscritenfte_buf_enumerate(void (*Sys_EnumeratedFile)(void *ctx, size_t fsize), void *ctx, size_t namesize);
20
21
22//websocket is implemented in javascript because there is no usable C api (emscripten's javascript implementation is shite and has fatal errors).
23int emscriptenfte_ws_connect(const char *url, const char *wsprotocol); //open a websocket connection to a specific host
24void emscriptenfte_ws_close(int sockid); //close it again
25int emscriptenfte_ws_cansend(int sockid, int extra, int maxpending); //returns false if we're blocking for some reason. avoids overflowing. everything is otherwise reliable.
26int emscriptenfte_ws_send(int sockid, const void *data, int len); //send data to the peer. queues data. never dropped.
27int emscriptenfte_ws_recv(int sockid, void *data, int len); //receive data from the peer.
28
29int emscriptenfte_rtc_create(int clientside, void *ctxp, int ctxi, void(*cb)(void *ctxp, int ctxi, int type, const char *data), const char *json_config); //open a webrtc connection to a specific broker url
30void emscriptenfte_rtc_offer(int sock, const char *offer, const char *sdptype);//sets the remote sdp.
31void emscriptenfte_rtc_candidate(int sock, const char *offer); //adds a remote candidate.
32
33//misc stuff for printf replacements
34void emscriptenfte_alert(const char *msg);
35void emscriptenfte_print(const char *msg);
36void emscriptenfte_setupmainloop(int(*mainloop)(double timestamp));
37NORETURN void emscriptenfte_abortmainloop(const char *caller, int fatal);
38
39//we're trying to avoid including libpng+libjpeg+libogg in javascript due to it being redundant bloat.
40//to use such textures/sounds, we can just 'directly' load them via webgl
41void emscriptenfte_gl_loadtexturefile(int gltexid, int *width, int *height, void *data, int datasize, const char *fname, int premul, int genmips);
42void emscriptenfte_al_loadaudiofile(int al_buf, void *data, int datasize);
43
44//avoid all of emscripten's sdl emulation.
45//this resolves input etc issues.
46unsigned long emscriptenfte_ticks_ms(void);
48void emscriptenfte_updatepointerlock(int wantpointerlock, int hidecursor);
50void emscriptenfte_settitle(const char *text);
52 int width,
53 int height,
54 void(*Resized)(int newwidth, int newheight),
55 void(*Mouse)(unsigned int devid,int abs,float x,float y,float z,float size),
56 void(*Button)(unsigned int devid, int down, int mbutton),
57 int(*Keyboard)(unsigned int devid, int down, int keycode, int unicode),
58 void(*LoadFile)(char *url, char *mime, int filehandle),
59 void(*CbufAdd)(const char *text),
60 void(*buttonevent)(unsigned int joydev, int button, int ispressed, int isstandard),
61 void(*axisevent)(unsigned int joydev, int axis, float value, int isstandard),
62 int (*ShouldSwitchToFullscreen)(void)
63 );
64
66int emscriptenfte_getvreyedata(int eye, float *projectionmatrix, float *viewmatrix);
67
unsigned int width
Definition: bymorphed.h:4
unsigned int height
Definition: bymorphed.h:5
cvar_t msg
Definition: cl_main.c:159
char * text
Definition: decomp.c:375
int emscriptenfte_ws_cansend(int sockid, int extra, int maxpending)
void emscriptenfte_settitle(const char *text)
unsigned long emscriptenfte_ticks_ms(void)
int emscriptenfte_ws_recv(int sockid, void *data, int len)
int emscriptenfte_getvrframedata(void)
void emscriptenfte_rtc_candidate(int sock, const char *offer)
void emscritenfte_buf_enumerate(void(*Sys_EnumeratedFile)(void *ctx, size_t fsize), void *ctx, size_t namesize)
void emscriptenfte_setupmainloop(int(*mainloop)(double timestamp))
void emscriptenfte_alert(const char *msg)
void emscriptenfte_print(const char *msg)
int emscriptenfte_setupcanvas(int width, int height, void(*Resized)(int newwidth, int newheight), void(*Mouse)(unsigned int devid, int abs, float x, float y, float z, float size), void(*Button)(unsigned int devid, int down, int mbutton), int(*Keyboard)(unsigned int devid, int down, int keycode, int unicode), void(*LoadFile)(char *url, char *mime, int filehandle), void(*CbufAdd)(const char *text), void(*buttonevent)(unsigned int joydev, int button, int ispressed, int isstandard), void(*axisevent)(unsigned int joydev, int axis, float value, int isstandard), int(*ShouldSwitchToFullscreen)(void))
void emscriptenfte_gl_loadtexturefile(int gltexid, int *width, int *height, void *data, int datasize, const char *fname, int premul, int genmips)
int emscriptenfte_ws_send(int sockid, const void *data, int len)
int emscriptenfte_buf_delete(const char *fname)
void emscriptenfte_ws_close(int sockid)
int emscriptenfte_buf_rename(const char *oldname, const char *newname)
void emscriptenfte_updatepointerlock(int wantpointerlock, int hidecursor)
int emscriptenfte_buf_open(const char *name, int createifneeded)
unsigned int emscriptenfte_buf_getsize(int handle)
int emscriptenfte_getvreyedata(int eye, float *projectionmatrix, float *viewmatrix)
int emscriptenfte_buf_write(int handle, int offset, const void *data, int len)
void emscriptenfte_buf_release(int handle)
void emscriptenfte_buf_pushtolocalstore(int handle)
double emscriptenfte_uptime_ms(void)
int emscriptenfte_buf_create(void)
int emscriptenfte_rtc_create(int clientside, void *ctxp, int ctxi, void(*cb)(void *ctxp, int ctxi, int type, const char *data), const char *json_config)
void emscriptenfte_window_location(const char *url)
NORETURN void emscriptenfte_abortmainloop(const char *caller, int fatal)
int emscriptenfte_ws_connect(const char *url, const char *wsprotocol)
void emscriptenfte_al_loadaudiofile(int al_buf, void *data, int datasize)
int emscriptenfte_buf_read(int handle, int offset, void *data, int len)
void emscriptenfte_rtc_offer(int sock, const char *offer, const char *sdptype)
void emscriptenfte_polljoyevents(void)
void emscriptenfte_async_wget_data2(const char *url, void *ctx, void(*onload)(void *ctx, int buf), void(*onerror)(void *ctx, int code), void(*onprogress)(void *ctx, int prog, int total))
float projectionmatrix[16]
Definition: gl_backend.c:145
const char * oldname
Definition: gl_model.c:1429
const char * newname
Definition: gl_model.c:1431
static EGLSurface EGLSurface EGLContext ctx
Definition: gl_videgl.c:47
struct @319::xidevinfo::@353 axis[2]
qboolean abs
Definition: gl_vidlinuxglx.c:1363
GLfloat GLfloat GLfloat z
Definition: glquake.h:158
GLfloat GLfloat y
Definition: glquake.h:158
GLint GLenum type
Definition: glquake.h:157
GLuint GLcharARB * name
Definition: glquake.h:155
GLint size
Definition: glquake.h:157
GLfloat x
Definition: glquake.h:158
GLsizei GLboolean const GLfloat * value
Definition: glquake.h:164
GLenum GLsizei len
Definition: glsupp.h:502
void * handle
Definition: image.c:4553
unsigned char extra
Definition: image_astc.h:123
char fname[MAX_QPATH]
Definition: m_mp3.c:160
char ** data
Definition: p_script.c:63
vec3_t offset
Definition: q2m_flash.c:28
unsigned char buf[KBRINGSIZE]
Definition: sys_dos.c:27