fteqw/engine/client/sys_plugfte.h
Spoike 53a7b3d47c added support for external capture plugins - and using avcodec as a plugin.c.
The ragdoll API is potentially usable now, but still really limited.
Enabled SQL requests by default using sqlite. Note that you'll need the sqlite dll to use this. MySQL should still be usable, but I didn't try. MySQL requires -DUSE_MYSQL to compile it, and a dll and -mysql argument to enable it.
Fixed nacl.
NPFTE plugin now invokes an exe to run the game rather than running the game within the browser.
externvalue builtin now accepts & prefix to return a pointer instead.
Fixed vector autocvars.
uri_get, bufstr_add, bufstr_free, now functional.
QC debugger can now show asm if line numbers are not available.
Added support for QC watchpoints. Use the watchpoint command.
gl_specular now give specular even without rtlights, thankfully not as blatently, but its there.
android will not crash due to supported audio formats, and gles2 can be selected via a cvar (requires full FTEDroidActivity/program restart).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4152 fc73d0e0-1445-4013-8a0c-d673dee63da5
2012-11-27 03:23:19 +00:00

109 lines
3.7 KiB
C

#ifndef __QUAKEDEF_H__
typedef enum qboolean;
typedef void *vfsfile_t;
#endif
struct browserfuncs
{
qboolean (*RequestDownload)(void *ctx, struct pipetype *ftype, char *url);
void (*StatusChanged)(void *ctx); /*tells it that it needs to redraw the pre-active image*/
};
/*the conext structure contains this at the start (you can safely cast context->contextpublic)*/
struct contextpublic
{
qboolean running; /*set if the plugin context is actually active*/
qboolean downloading;
unsigned int dlsize;
unsigned int dldone;
float availver; /*this is the version of the plugin that is available, if current is better, use 0*/
char statusmessage[256];
#if defined(_WIN32) && defined(__QUAKEDEF_H__)
/*the npapi stuff is lazy and uses this*/
void *oldwnd; /*not used in the plugin itself*/
void *oldproc; /*not used in the plugin itself*/
#endif
void *user;
};
/*
#include <windows.h>
static void VS_DebugLocation(char *fname, int line, char *fmt, ...)
{
char buffer[640];
va_list va;
sprintf(buffer, "%s(%i) : ", fname, line);
OutputDebugStringA(buffer);
va_start(va, fmt);
vsprintf(buffer, fmt, va);
va_end(va);
OutputDebugStringA(buffer);
OutputDebugStringA("\n");
}
*/
struct context;
struct pscript_property;
struct context *Plug_CreateContext(void *sysctx, const struct browserfuncs *funcs);
void Plug_DestroyContext(struct context *ctx);
void Plug_LockPlugin(struct context *ctx, qboolean lockstate);
qboolean Plug_StartContext(struct context *ctx);
void Plug_StopContext(struct context *ctx, qboolean wait);
qboolean Plug_ChangeWindow(struct context *ctx, void *whnd, int left, int top, int width, int height);
int Plug_FindProp(struct context *ctx, const char *field);
qboolean Plug_SetString(struct context *ctx, int field, const char *value);
qboolean Plug_GetString(struct context *ctx, int field, const char **value);
void Plug_GotString(const char *value);
qboolean Plug_SetInteger(struct context *ctx, int field, int value);
qboolean Plug_GetInteger(struct context *ctx, int field, int *value);
qboolean Plug_SetFloat(struct context *ctx, int field, float value);
qboolean Plug_GetFloat(struct context *ctx, int field, float *value);
#ifdef _WIN32
void *Plug_GetSplashBack(struct context *ctx, void *hdc, int *width, int *height);/*returns an HBITMAP*/
void Plug_ReleaseSplashBack(struct context *ctx, void *bmp);
#endif
struct plugfuncs
{
struct context *(*CreateContext)(void *sysctx, const struct browserfuncs *funcs);
void (*DestroyContext)(struct context *ctx);
void (*LockPlugin)(struct context *ctx, qboolean lockstate);
qboolean (*StartContext)(struct context *ctx);
void (*StopContext)(struct context *ctx, qboolean wait);
qboolean (*ChangeWindow)(struct context *ctx, void *whnd, int left, int top, int width, int height);
int (*FindProp)(struct context *ctx, const char *field);
qboolean (*SetString)(struct context *ctx, int field, const char *value);
qboolean (*GetString)(struct context *ctx, int field, const char **value);
void (*GotString)(const char *value);
qboolean (*SetInteger)(struct context *ctx, int field, int value);
qboolean (*GetInteger)(struct context *ctx, int field, int *value);
qboolean (*SetFloat)(struct context *ctx, int field, float value);
qboolean (*GetFloat)(struct context *ctx, int field, float *value);
#ifdef _WIN32
void *(*GetSplashBack)(struct context *ctx, void *hdc, int *width, int *height);/*returns an HBITMAP*/
void (*ReleaseSplashBack)(struct context *ctx, void *bmp);
#endif
qboolean (*SetWString)(struct context *ctx, int field, const wchar_t *value);
};
#define PLUG_APIVER 1
#ifdef __cplusplus
extern "C"
#endif
const struct plugfuncs *Plug_GetFuncs(int ver);