aboutsummaryrefslogtreecommitdiff
path: root/smelt/glfw_m/smelt_internal.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'smelt/glfw_m/smelt_internal.hpp')
-rw-r--r--smelt/glfw_m/smelt_internal.hpp249
1 files changed, 0 insertions, 249 deletions
diff --git a/smelt/glfw_m/smelt_internal.hpp b/smelt/glfw_m/smelt_internal.hpp
deleted file mode 100644
index 2619b12..0000000
--- a/smelt/glfw_m/smelt_internal.hpp
+++ /dev/null
@@ -1,249 +0,0 @@
-// -*- C++ -*-
-/*
- * Simple MultimEdia LiTerator(SMELT)
- * by Chris Xiong 2015
- * Internal header for GLFW version
- *
- * WARNING: This library is in development and interfaces would be very
- * unstable.
- *
- */
-#ifndef SMELT_INTERNAL_H
-#define SMELT_INTERNAL_H
-
-#include "../../include/smelt.hpp"
-#include "smelt_config.hpp"
-#include <cstdio>
-#include <cstring>
-#include <cstdlib>
-#include <ctime>
-#include <cstdarg>
-#include <dirent.h>
-#include <unistd.h>
-#define GLEW_STATIC
-#include <GL/glew.h>
-#include <GLFW/glfw3.h>
-#ifndef ENABLE_DUMB
-#include <AL/al.h>
-#include <AL/alc.h>
-#include <AL/alext.h>
-#ifdef ENABLE_OGG_SUPPORT
-#include <ogg/ogg.h>
-#include <vorbis/vorbisfile.h>
-#endif
-#endif
-#ifdef WIN32
-#include <windows.h>
-#include <intrin.h>
-#endif
-
-#define xstr(s) str(s)
-#define str(s) #s
-#define SLINE xstr(__LINE__)
-
-class TOpenGLDevice
-{
-public:
- bool have_base_opengl;
-};
-
-struct glTexture;
-class TRenderTargetList
-{
-public:
- int w,h,ms;
- SMTEX tex;
- GLuint depth,frame,colorms,sframe,sdepth,scolor;
- TRenderTargetList *next;
-};
-class TTextureList
-{
-public:
- SMTEX tex;
- int w,h;
- TTextureList *next;
-};
-class TInputEventList
-{
-public:
- smInpEvent e;
- TInputEventList *next;
-};
-
-class SMELT_IMPL:public SMELT
-{
-public:
- virtual void smRelease();
- virtual bool smInit();
- virtual void smFinale();
- virtual void smMainLoop();
- virtual void smUpdateFunc(smHook func);
- virtual void smUpdateFunc(smHandler* h);
- virtual void smUnFocFunc(smHook func);
- virtual void smUnFocFunc(smHandler* h);
- virtual void smFocFunc(smHook func);
- virtual void smFocFunc(smHandler* h);
- virtual void smQuitFunc(smHook func);
- virtual void smQuitFunc(smHandler* h);
- virtual void smWinTitle(const char* title);
- virtual bool smIsActive();
- virtual void smNoSuspend(bool para);
- virtual void smVidMode(int resX,int resY,bool _windowed);
- virtual void smLogFile(const char* path);
- virtual void smLog(const char* format,...);
- virtual void smScreenShot(const char* path);
-
- virtual void smSetFPS(int fps);
- virtual float smGetFPS();
- virtual float smGetDelta();
- virtual float smGetTime();
-
- virtual SMSFX smSFXLoad(const char *path);
- virtual SMSFX smSFXLoadFromMemory(const char *ptr,DWORD size);
- virtual SMCHN smSFXPlay(SMSFX fx,int vol=100,int pan=0,float pitch=1.,bool loop=0);
- virtual float smSFXGetLengthf(SMSFX fx);
- virtual DWORD smSFXGetLengthd(SMSFX fx);
- virtual void smSFXSetLoopPoint(SMSFX fx,DWORD l,DWORD r);
- virtual void smSFXFree(SMSFX fx);
-
- virtual void smChannelVol(SMCHN chn,int vol);
- virtual void smChannelPan(SMCHN chn,int pan);
- virtual void smChannelPitch(SMCHN chn,float pitch);
- virtual void smChannelPause(SMCHN chn);
- virtual void smChannelResume(SMCHN chn);
- virtual void smChannelStop(SMCHN chn);
- virtual void smChannelPauseAll();
- virtual void smChannelResumeAll();
- virtual void smChannelStopAll();
- virtual bool smChannelIsPlaying(SMCHN chn);
- virtual float smChannelGetPosf(SMCHN chn);
- virtual void smChannelSetPosf(SMCHN chn,float pos);
- virtual int smChannelGetPosd(SMCHN chn);
- virtual void smChannelSetPosd(SMCHN chn,int pos);
-
- virtual void smGetMouse2f(float *x,float *y);
- virtual void smSetMouse2f(float x,float y);
- virtual void smSetMouseGrab(bool enabled);
- virtual int smGetWheel();
- virtual bool smIsMouseOver();
- virtual int smGetKeyState(int key);
- virtual int smGetKey();
- virtual bool smGetInpEvent(smInpEvent *e);
-
- virtual bool smRenderBegin2D(bool ztest=0,SMTRG trg=0);
- virtual bool smRenderBegin3D(float fov,bool ztest=0,SMTRG trg=0);
- virtual bool smRenderEnd();
- virtual void sm3DCamera6f2v(float *pos,float *rot);
- virtual void sm2DCamera5f3v(float *pos,float *dpos,float *rot);
- virtual void smMultViewMatrix(float *mat);
- virtual void smClrscr(DWORD color,bool clearcol=true,bool cleardep=true);
- virtual void smRenderLinefd(float x1,float y1,float z1,float x2,float y2,float z2,DWORD color);
- virtual void smRenderLinefvd(float *p1,float *p2,DWORD color);
- virtual void smRenderTriangle(smTriangle *t);
- virtual void smRenderQuad(smQuad *q);
- virtual smVertex* smGetVertArray();
- virtual void smDrawVertArray(int prim,SMTEX texture,int blend,int _primcnt);
- virtual void smDrawCustomIndexedVertices(smVertex* vb,WORD* ib,int vbc,int ibc,int blend,SMTEX texture);
-
- virtual SMTRG smTargetCreate(int w,int h,int ms=0);
- virtual SMTEX smTargetTexture(SMTRG targ);
- virtual void smTargetFree(SMTRG targ);
-
- virtual SMTEX smTextureCreate(int w,int h);
- virtual SMTEX smTextureLoad(const char *path);
- virtual SMTEX smTextureLoadFromMemory(const char *ptr,DWORD size);
- virtual void smTextureFree(SMTEX tex);
- virtual void smTextureOpt(int potopt=TPOT_NONPOT,int filter=TFLT_LINEAR);
- virtual int smTextureGetWidth(SMTEX tex,bool original=false);
- virtual int smTextureGetHeight(SMTEX tex,bool original=false);
- virtual DWORD* smTextureLock(SMTEX tex,int l,int t,int w,int h,bool ro=true);
- virtual void smTexutreUnlock(SMTEX tex);
-//internal routines&variables...
- static SMELT_IMPL* getInterface();
- void focusChange(bool actif);
-
- void *hwnd;
- bool Active;
- char curError[256];
-
- bool (*pUpdateFunc)();
- bool (*pUnFocFunc)();
- bool (*pFocFunc)();
- bool (*pQuitFunc)();
- smHandler *updateHandler,*unFocHandler,*focHandler,*quitHandler;
- const char *Icon;
- char winTitle[256];
- int scrw,scrh;
- int dispw,disph;
- bool windowed,vsync;
- char logFile[256];
- int limfps;
- bool hideMouse,noSuspend;
-
- TOpenGLDevice *pOpenGLDevice;
- smVertex *vertexArray;
- smVertex *vertexBuf;
- GLushort *indexBuf;
- GLuint IndexBufferObject;
- GLuint VertexBufferObject;
- GLuint VertexArrayObject;
- GLuint ShaderProgram;
- GLuint fragshader,vertshader;
- int loc_tex,loc_mmodv,loc_mproj;
- float mmodv[16],mproj[16];
- TRenderTargetList *targets;
- TRenderTargetList *curTarget;
- TTextureList *textures;
- bool tdmode;
- int primcnt,primType,primBlend,filtermode;
- SMTEX primTex,emptyTex;
- bool zbufenabled;
- bool checkGLExtension(const char *extlist,const char *ext);
- void unloadGLEntryPoints();
- bool loadGLEntryPoints();
- bool initOGL();
- void finiOGL();
- bool restOGL();
- bool confOGL();
- void batchOGL(bool endScene=false);
- void configTexture(glTexture *t,int w,int h,DWORD *px,bool compress=true);
- void bindTexture(glTexture *t);
- bool buildTarget(TRenderTargetList *pTarget,GLuint texid,int w,int h,int ms);
- SMTEX buildTexture(int w,int h,DWORD *px);
- void setBlend(int blend);
- void configProjectionMatrix2D(int w,int h);
- void configProjectionMatrix3D(int w,int h,float fov);
- DWORD* decodeImage(BYTE *data,const char *fn,DWORD size,int &w,int &h);
-
- void *pOpenALDevice;
- bool mute,lpp;
- bool initOAL();
- void finiOAL();
-#ifndef ENABLE_DUMB
- int scnt;
- ALuint src[SRC_MAX];
- ALuint getSource();
-#endif
-
- int posz,lkey;
- float posx,posy;
- int keymods;
- bool mouseOver,captured;
- char keyz[256];
- bool keylst[256];
- TInputEventList *inpQueue;
- void initInput();
- void clearQueue();
- void buildEvent(int type,int k,int scan,int flags,int x,int y);
- bool procGLFWEvent();
- int GLFWKeyToSMKey(int glfwkey);
-
- float timeDelta,updateFPSDelay,fps,timeS;
- DWORD fixDelta,t0;
- int fcnt;
- DWORD dt;
-private:
- SMELT_IMPL();
-};
-extern SMELT_IMPL *pSM;
-#endif