12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292 |
- #pragma once
- #include "la_5.h"
- #include <float.h>
- #define TNS_PI 3.1415926535897932384626433832795
- #define deg(r) r / TNS_PI * 180.0
- #define rad(d) d *TNS_PI / 180.0
- typedef float tnsMatrix44f[16];
- typedef real tnsMatrix44d[16];
- typedef real tnsVector2d[2];
- typedef real tnsVector3d[3];
- typedef real tnsVector4d[4];
- typedef float tnsVector3f[3];
- typedef int tnsVector2i[2];
- typedef struct _tnsMatrixStackItem tnsMatrixStackItem;
- struct _tnsMatrixStackItem
- {
- tnsMatrix44d view;
- tnsMatrix44d model;
- tnsMatrix44d projection;
- };
- typedef struct _tnsMatrixStack tnsMatrixStack;
- struct _tnsMatrixStack
- {
- tnsMatrixStackItem *level;
- int current_level;
- int max_level;
- };
- typedef struct _tnsShader tnsShader;
- struct _tnsShader{
- laListItem Item;
- int vtShaderID;
- int fgShaderID;
- int gsShaderID;
- int glProgramID;
- int CustomID;
- int iModel, iProjection, iView, iProjectionInverse;
- int iShadow;
- int iVertex, iNormal, iColor, iUV;
- int iTexColor;
- int iTexColorMS;
- int iMultiplyColor, StateMultiplyColor;
- int iTextureMode, StateTextureMode;
- int iSampleAmount, StateSampleAmount;
- int uViewDir,uViewPos,uFOV;
- };
- typedef struct _tnsTexture tnsTexture;
- typedef struct _tnsCommand tnsCommand;
- struct _tnsCommand
- {
- GLenum Mode;
- short Dimensions;
- short UVDimensions;
- char UseVert;
- char UseColor;
- char UseNormal;
- char UseTexCoord;
- char UseIndex;
- GLenum PolyMode;
- GLenum Shade;
- GLfloat UniformColor[4];
- short NumVert;
- short NumIndex;
- short VertBegin;
- short VertEnd;
- short ColorBegin;
- short ColorEnd;
- short TexCoordBegin;
- short TexCoordEnd;
- short NormalBegin;
- short NormalEnd;
- GLushort IndexBegin;
- GLushort IndexEnd;
- tnsShader *ReplaceShader;
- tnsTexture *ColorTexture;
- int TextureMode;
- int MultiplyColor;
- };
- typedef struct _tnsMain tnsMain;
- typedef struct _tnsWorld tnsWorld;
- typedef struct _tnsObject tnsObject;
- struct _tnsWorld
- {
- laListItem Item;
- laListHandle RootObjects;
- tnsObject *ActiveRoot;
- laListHandle AllObjects;
- laListHandle Materials;
- u16bit TimeYear;
- u8bit TimeMonth;
- u8bit TimeDay;
- laListHandle BezierCurves;
- laListHandle Meshes;
- };
- NEED_STRUCTURE(tnsLoopItem);
- NEED_STRUCTURE(tnsRenderLine);
- NEED_STRUCTURE(tnsRenderBuffer);
- STRUCTURE(tnsFilterKernel){
- int Size;
- real *Kernel;
- };
- STRUCTURE(tnsTriangulateNode){
- char Picked;
- real Angle;
- tnsLoopItem *LoopItem;
- tnsRenderLine *FowardRL;
- tnsRenderLine *BackwardRL;
- };
- STRUCTURE(tnsTriangulateEdgeNode){
- tnsRenderLine *RL;
- };
- struct _tnsMain
- {
- laListItem Item;
- tnsMatrixStack stack;
- laListHandle Shaders;
- int NextShaderIndex;
- tnsShader *CurrentShader;
- tnsShader *BindedShader;
-
- int IsOffscreen;
- laListHandle Offscreens;
- char *GLVersionStr;
- char *GLVendorStr;
- char *GLRendererStr;
- char *GLSLVersionStr;
- tnsShader* immShader;
- tnsShader* RayShader;
- tnsShader* ShadowShader;
- tnsShader* SceneShader;
- tnsShader* SelectionShader;
- int GlobalVAO;
- tnsShader *uiShader;
- tnsShader *stringShader;
- tnsShader *TextureShader;
- tnsShader *RectangleTextureShader;
- tnsShader *TextureMultiplyShader;
- tnsShader *MSTextureShader;
- tnsShader *MSATextureShader;
- tnsShader *TEST_MatcapShader;
- tnsShader *TransparentGridShader;
- tnsShader *SobelColorShader;
- tnsShader *SobelShader;
- tnsShader *ExtraBuffersShader;
- laListHandle Textures;
- tnsTexture *PreviewTexture;
- tnsFilterKernel EdgeGaussFilter;
- GLenum GlTextureSets;
-
- tnsTexture *TexColor;
- tnsTexture *TexRenderbuffer;
-
- GLenum StateShadeMode;
- GLenum StatePolyMode;
- tnsTexture *StateTexColor;
- int StateTextureMode;
- int StateMultiplyColor;
-
- tnsShader* StateShader;
- GLfloat StateColor[4];
- GLfloat* Vert;
- GLuint VertBufObject;
- int NextVert, MaxVert;
- GLfloat* Color;
- GLuint ColorBufObject;
- int NextColor, MaxColor;
- GLfloat* Normal;
- GLuint NormalBufObject;
- int NextNormal, MaxNormal;
- GLfloat* TexCoord;
- GLuint TexCoordBufObject;
- int NextTexCoord, MaxTexCoord;
- GLuint* Index;
- GLuint IndexBufObject;
- int NextIndex, MaxIndex;
- tnsCommand* DrawingCommand;
- int NextCommand, MaxCommand;
- tnsWorld World;
- laListHandle RenderBuffers;
- tnsRenderBuffer *ActiveRenderBuffer;
- };
- typedef struct _tnsLineStripPoint tnsLineStripPoint;
- struct _tnsLineStripPoint
- {
- laListItem Item;
- tnsVector3d P;
- };
- typedef struct _tnsLineStrip tnsLineStrip;
- struct _tnsLineStrip
- {
- laListItem Item;
- laListHandle Points;
- int PointCount;
- };
- #define TNS_SNAKE_STRENGTH_LIMIT 30
- #define TNS_SNAKE_STEP_LENGTH 5
- #define TNS_SNAKE_STRENGTH_MARCHING_LIMIT 30
- #define TNS_SNAKE_EDGE_WIDTH 2
- #define TNS_SNAKE_FILTER_SIZE 6
- #define TNS_SNAKE_ANGLE_DEVIATE 0.5
- #define TNS_SNAKE_ANGLE_PRICISION 1
- #define TNS_SNAKE_STEP1 3
- #define TNS_SNAKE_STEP2 5
- typedef struct _tnsTextureSample tnsTextureSample;
- struct _tnsTextureSample
- {
- laListItem Item;
- u8bit Sample;
- int X, Y;
- real Z;
- };
- typedef struct _tnsTexture tnsTexture;
- struct _tnsTexture
- {
- laListItem Item;
- int IsRenderBuffer;
- GLuint GLTexHandle;
- GLint GLTexBitsType;
- GLuint GLTexType;
- int Multisample;
- int Width;
- int Height;
- int Slices;
- void *DrawData;
- int RBWidth, RBHeight;
- int ElemSize;
- void *TextureReadBack;
- void **SamplePtr;
- laListHandle PendingSamples;
- laListHandle ErasedSamples;
- laListHandle LineStrips;
- };
- typedef struct _tnsOffscreen tnsOffscreen;
- struct _tnsOffscreen
- {
- laListItem Item;
- tnsTexture *pColor[16];
- tnsTexture *pDepth;
- tnsTexture *pStencil;
- GLuint FboHandle;
- int UseSecondary;
- };
- extern const GLuint TNS_ATTACHMENT_ARRAY_NONE[];
- extern const GLuint TNS_ATTACHMENT_ARRAY[];
- extern const GLuint TNS_ATTACHMENT_ARRAY_1[];
- extern const GLuint TNS_ATTACHMENT_ARRAY_2[];
- extern const GLuint TNS_ATTACHMENT_ARRAY_1_2[];
- extern const GLuint TNS_ATTACHMENT_ARRAY_0_1_2[];
- extern const GLenum TNS_WINDOW_DRAWBUFFER_ARRAY[];
- #define TNS_PROJECTION_MATRIX 1
- #define TNS_MODEL_MATRIX 2
- #define TNS_VIEW_MATRIX 3
- #define TNS_TEXTURE_MATRIX 4
- #include "freetype/ftglyph.h"
- #include "freetype/ftoutln.h"
- #include "freetype/fttrigon.h"
- #include "ft2build.h"
- #include <stdarg.h>
- #include <stdlib.h>
- #include <string.h>
- NEED_STRUCTURE(tnsTexture);
- typedef struct _tnsFontSingleCharacter tnsFontSingleCharacter;
- struct _tnsFontSingleCharacter
- {
- tnsTexture *Tex;
- int Generated;
- short width;
- short height;
- short advx;
- short advy;
- short deltax;
- short deltay;
- short bufferx;
- short buffery;
- };
- #define TNS_UNICODE_COUNT ((unsigned int)(1<<17))
- #define TNS_MONO_COUNT (0x045f)
- typedef struct _tnsFont tnsFont;
- struct _tnsFont
- {
- laListItem Item;
- char *fontName;
- char *IconFontName;
- tnsFontSingleCharacter** characters;
- tnsFontSingleCharacter** monocharacters;
- FT_Library ftlib;
- FT_Face ftface[16];
- FT_Face ftfacemono;
- int NumFaces;
- real MonoScale;
- int MonoAdvance;
- real size;
- unsigned int height;
- tnsTexture TexBuffer;
- int CurrentX;
- int CurrentY;
- };
- typedef struct _tnsFontManager tnsFontManager;
- struct _tnsFontManager
- {
- laListHandle Fonts;
- tnsFont *UsingFont;
- tnsFont *VectorsGrapghs;
- unsigned LastDlst;
- };
- typedef struct _tnsFontBoundBox tnsFontBoundBox;
- struct _tnsFontBoundBox
- {
- int x, y, w, h;
- };
- #define TNS_FONT_BUFFER_W 2048
- #define TNS_FONT_BUFFER_H 2048
- #define TNS_FONT_ALIGN_LEFT 1
- #define TNS_FONT_ALIGN_CENTER 2
- #define TNS_FONT_ALIGN_RIGHT 4
- #define TNS_FONT_ALIGN_LEFT_PROTECT 8
- #define TNS_FONT_ALIGN_CENTER_FIRST (2 | 8)
- #define CSS_FLOW_DIRECTION_LR 1
- #define CSS_FLOW_DIRECTION_TD 0
- #define TNS_STATE_NORMAL 0
- #define TNS_STATE_PUSHED 1
- #define TNS_STATE_HIGHLIGHT 2
- #define TNS_STATE_HIGHLIGHT_SELECT 3
- #define TNS_STATE_KEYING 4
- #define TNS_STATE_INTERPOLATING 5
- #define TNS_STATE_LIMITED 6
- typedef struct _tnsWorld tnsWorld;
- typedef struct _tnsObject tnsObject;
- #define TNS_ROTATION_XYZ_EULER 0
- #define TNS_ROTATION_XZY_EULER 1
- #define TNS_ROTATION_YXZ_EULER 2
- #define TNS_ROTATION_YZX_EULER 3
- #define TNS_ROTATION_ZXY_EULER 4
- #define TNS_ROTATION_ZYX_EULER 5
- #define TNS_ROTATION_QUATERNION 6
- #define TNS_OBJECT_ROOT 0
- #define TNS_OBJECT_EMPTY (1<<0)
- #define TNS_OBJECT_CAMERA (1<<1)
- #define TNS_OBJECT_LIGHT (1<<2)
- #define TNS_OBJECT_MESH (1<<3)
- NEED_STRUCTURE(tnsRenderTriangle);
- NEED_STRUCTURE(tnsRenderVert);
- #define TNS_OBJECT_FLAGS_SELECTED 1
- typedef struct _tnsObject tnsObject;
- struct _tnsObject
- {
- laListItem Item;
- int Type;
- int SelectID;
- int Flags;
-
- laSafeString *Name;
- int DrawMode;
- int Show;
- int ShowOnRender;
- int HideChildren;
- real GLocation[3];
- real GRotation[3];
- real GScale;
- real Location[3];
- real Rotation[4];
- real Scale;
- u8bit RotationMode;
- tnsMatrix44d GlobalTransform;
- tnsMatrix44d SelfTransform;
-
- tnsObject *Active;
- tnsObject *InRoot;
- tnsObject *ParentObject;
- laListHandle ChildObjects;
- };
- #define TNS_PRESPECTIVE_CAMERA 0
- #define TNS_ORTHOGRAPHICAL_CAMERA 1
- #define TNS_FISHEYE_CAMERA 2
- NEED_STRUCTURE(tnsBatch)
- #define TNS_MATERIAL_DRAW_MODE_SOLID 0
- #define TNS_MATERIAL_DRAW_MODE_WIRE 1
- typedef struct _tnsMaterial tnsMaterial;
- struct _tnsMaterial
- {
- laListItem Item;
- laSafeString *Name;
- int ID;
- int DrawMode;
- real Color[4];
- real LinearColor[4];
- real SpectacularColor[4];
- real ReflexThreshold;
- real ReflexStrengh;
- real ReflexSharpeness;
- real LowBrightnessColor[4];
- u8bit HaloMode;
- };
- #define TNS_CAMERA_PERSPECTIVE 0
- #define TNS_CAMERA_ORTHO 1
- #define TNS_CAMERA_FISHEYE 2
- typedef struct _tnsCamera tnsCamera;
- struct _tnsCamera
- {
- tnsObject Base;
- int CameraType;
- real FOV;
- real ZMin, ZMax;
- real FocusDistance;
- real OrthScale;
- tnsVector3d RenderViewDir;
- };
- typedef struct _tnsLight tnsLight;
- struct _tnsLight
- {
- tnsObject Base;
- int LightType;
- int UniDirectional;
- real Strength;
- tnsMaterial *Material;
- };
- STRUCTURE(tnsGroup){
- laListItem Item;
- laListHandle ObjectLinks;
- laSafeString *Name;
- tnsVector4d Color1;
- tnsVector4d Color2;
- int ExcludeFromCalculation;
- };
- #define TNS_MESH_FLAG_SELECTED (1<<0)
- #define TNS_MESH_FLAG_PICKED (1<<1)
- STRUCTURE(tnsMVert){
- laListItem Item;
- tnsVector3d p;
- tnsVector3d n;
- int flags;
- u32bit i;
- laListHandle elink;
-
- };
- NEED_STRUCTURE(tnsMFace);
- STRUCTURE(tnsMEdge){
- laListItem Item;
- tnsMVert *vl;
- tnsMVert *vr;
- tnsMFace *fl;
- tnsMFace *fr;
- u32bit i;
- int flags;
- };
- STRUCTURE(tnsMFace){
- laListItem Item;
- laListHandle l;
- tnsVector3d n;
- tnsVector3d gn;
- tnsVector3d c;
- short looplen;
- short mat;
- u32bit i;
- int flags;
- };
- STRUCTURE(tnsVert){
- tnsVector3f p;
- int flags;
- };
- STRUCTURE(tnsEdge){
- int l,r;
- int flags;
- };
- STRUCTURE(tnsFace){
- int* loop;
- short looplen;
- int flags;
- };
- STRUCTURE(tnsBatchCommand){
- laListItem Item;
- char* name;
- int DrawElements;
- GLuint EBO;
- u32bit ElementCount;
- GLenum DrawAs;
- int UseUniformColor; real UniformColor[4];
- GLuint CBO; int ColorDimension; int OverrideColorArray;
- int Dimension;
- int HiddenByDefault;
- };
- STRUCTURE(tnsBatch){
- laListItem Item;
- GLuint VBO;
- GLuint NBO; int HasNormal;
- GLuint CBO; int HasColor;
- u32bit NumVert;
- int Dimension;
- int NormalDimension;
- int ColorDimension;
- laListHandle Branches;
- GLuint BeginElementOffset;
- };
- #define TNS_MESH_OBJECT_MODE 0
- #define TNS_MESH_EDIT_MODE 1
- extern laPropContainer* TNS_PC_OBJECT_GENERIC;
- extern laPropContainer* TNS_PC_OBJECT_CAMERA;
- extern laPropContainer* TNS_PC_OBJECT_LIGHT;
- extern laPropContainer* TNS_PC_OBJECT_MESH;
- #define TNS_HINT_TRANSFORM (1<<1)
- #define TNS_HINT_GEOMETRY (1<<0)
- STRUCTURE(tnsMeshFaceStorageSingleHead){
- int looplen, flags;
- };
- STRUCTURE(tnsMeshFaceStorage){
- int len; int arr;
- };
- STRUCTURE(tnsMeshObject){
- tnsObject Base;
- tnsVert* v; int totv, maxv;
- tnsEdge* e; int tote, maxe;
- tnsFace* f; int totf, maxf;
- laListHandle mv; int totmv;
- laListHandle me; int totme;
- laListHandle mf; int totmf;
- int TriangleCount;
- int TriangulatedEdgeCount;
-
- tnsBatch *Batch;
- int Mode;
- };
- STRUCTURE(tnsEdgeHashEdge){
- int tv; tnsMEdge* me;
- };
- STRUCTURE(tnsEdgeHashVert){
- tnsEdgeHashEdge* e; int max, next; tnsMVert* mv;
- };
- STRUCTURE(tnsEdgeHash){
- tnsEdgeHashVert* vl; int max,next;
- };
- #define TNS_TILE(tile, r, c, CCount) \
- tile[r * CCount + c]
- #define TNS_CLAMP(a, Min, Max) \
- a = a < Min ? Min : (a > Max ? Max : a)
- #define TNS_MAX2(a, b) \
- (a > b ? a : b)
- #define TNS_MIN2(a, b) \
- (a < b ? a : b)
- #define TNS_MAX3(a, b, c) \
- (a > TNS_MAX2(b, c) ? a : TNS_MAX2(b, c))
- #define TNS_MIN3(a, b, c) \
- (a < TNS_MIN2(b, c) ? a : TNS_MIN2(b, c))
- #define TNS_MAX2_INDEX(a, b) \
- (a > b ? 0 : 1)
- #define TNS_MIN2_INDEX(a, b) \
- (a < b ? 0 : 1)
- #define TNS_MAX3_INDEX(a, b, c) \
- (a > b ? (a > c ? 0 : (b > c ? 1 : 2)) : (b > c ? 1 : 2))
- #define TNS_MIN3_INDEX(a, b, c) \
- (a < b ? (a < c ? 0 : (b < c ? 1 : 2)) : (b < c ? 1 : 2))
- #define TNS_MAX3_INDEX_ABC(x, y, z) \
- (x > y ? (x > z ? a : (y > z ? b : c)) : (y > z ? b : c))
- #define TNS_MIN3_INDEX_ABC(x, y, z) \
- (x < y ? (x < z ? a : (y < z ? b : c)) : (y < z ? b : c))
- #define TNS_ABC(index) \
- (index == 0 ? a : (index == 1 ? b : c))
- #define TNS_DOUBLE_CLOSE_ENOUGH(a, b) \
- (((a) + DBL_EDGE_LIM) >= (b) && ((a)-DBL_EDGE_LIM) <= (b))
-
- #define TNS_FLOAT_CLOSE_ENOUGH_WIDER(a, b) \
- (((a) + 0.0000001) >= (b) && ((a)-0.0000001) <= (b))
- #define TNS_FRAMEBUFFER_PIXEL(FrameBuffer, Row, Column) \
- &((FrameBuffer)->Pixels[Row * FrameBuffer->TileSizeW * FrameBuffer->W * FrameBuffer->SubPixelSample + Column * FrameBuffer->H * FrameBuffer->TileSizeH * FrameBuffer->SubPixelSample])
- #define TNS_IN_TILE_X(RenderTile, Fx) \
- (RenderTile->FX <= Fx && RenderTile->FXLim >= Fx)
- #define TNS_IN_TILE_Y(RenderTile, Fy) \
- (RenderTile->FY <= Fy && RenderTile->FYLim >= Fy)
- #define TNS_IN_TILE(RenderTile, Fx, Fy) \
- (TNS_IN_TILE_X(RenderTile, Fx) && TNS_IN_TILE_Y(RenderTile, Fy))
- #define TNS_RENDERBUFFER_INCOMPLETE 0
- #define TNS_RENDERBUFFER_GEOMETRY_COMPLETE 1
- #define TNS_RENDERBUFFER_RASTERIZER_COMPLETE 2
- #define TNS_RENDERBUFFER_COMPLETE (TNS_RENDERBUFFER_GEOMETRY_COMPLETE | TNS_RENDERBUFFER_RASTERIZER_COMPLETE)
- #define TNS_DISPLAY_MODE_WIRE GL_LINE_LOOP
- #define TNS_DISPLAY_MODE_SOLID GL_TRIANGLES
- #define TNS_INTERNAL_MODE_WIRE 1
- #define TNS_INTERNAL_MODE_SOLID 2
- #define TNS_ARROW_L 1
- #define TNS_ARROW_R 2
- #define TNS_ARROW_U 3
- #define TNS_ARROW_D 4
- #define TNS_KEYWORD_OBJECT_COUNT 1
- #define TNS_KEYWORD_OBJECT_NAME 2
- #define TNS_KEYWORD_OBJECT_TYPE 3
- #define TNS_KEYWORD_OBJECT_LOCATION 4
- #define TNS_KEYWORD_OBJECT_ROTATION 5
- #define TNS_KEYWORD_OBJECT_SCALE 6
- #define TNS_KEYWORD_OBJECT_CHILDREN_COUNT 7
- #define TNS_KEYWORD_OBJECT_CHILDREN_NAMES 8
- #define TNS_KEYWORD_MESH_VERTEX_COUNT 11
- #define TNS_KEYWORD_MESH_VERTICES 12
- #define TNS_KEYWORD_MESH_LOOP_COUNT 13
- #define TNS_KEYWORD_MESH_TOPOLOGY 14
- #define TNS_KEYWORD_MESH_UV_COUNT 15
- #define TNS_KEYWORD_MESH_UV_NAME 16
- #define TNS_KEYWORD_MATERIAL_COUNT 17
- #define TNS_KEYWORD_MATERIAL_NAME 18
- #define TNS_KEYWORD_MATERIAL_COLOR 19
- #define TNS_KEYWORD_MATERIAL_END 20
- #define TNS_KEYWORD_CAMERA_FOV 20
- #define TNS_KEYWORD_CAMERA_IS_ACTIVE 21
- #define TNS_KEYWORD_CAMERA_NEAR 22
- #define TNS_KEYWORD_CAMERA_FAR 23
- #define TNS_KEYWORD_GROUP_COUNT 24
- #define TNS_KEYWORD_GROUP_NAME 25
- #define TNS_KEYWORD_OBJECT_GROUP_COUNT 26
- void tnsSetuptnsFontManager();
- tnsShader *tnsNewShaderProgram(int VertexShaderID, int FragmentShaderID, int GeometryShaderID);
- int tnsNewGeometryShader(char *Content);
- int tnsNewFragmentShader(char *Content);
- int tnsNewVertexShader(char *Content);
- void tnsDeleteShaderProgram(tnsShader* s);
- int tnsNextPowOf2(int i);
- int tnsEnableShader(int index);
- int tnsEnableShaderv(tnsShader *shader);
- int tnsUseShader(tnsShader *shader);
- void tnsUseImmShader();
- void tnsUseShadowShader();
- void tnsUseSceneShader();
- void tnsUseRayShader();
- void tnsUseTransparentGridShader();
- void tnsUseImagePeelShader();
- void tnsInitRenderKernel(int matrixStackLevel);
- void tnsInitBuiltinShaders();
- void tnsInitWindowDefaultRenderConfig();
- void tnsQuit();
- real *tnsGetModelMatrix();
- real *tnsGetViewMatrix();
- real *tnsGetProjectionMatrix();
- void tnsGetMVMatrix(tnsMatrix44d r);
- void tnsGetMVPMatrix(tnsMatrix44d r);
- void tnsResetModelMatrix();
- void tnsResetViewMatrix();
- void tnsResetProjectionMatrix();
- void tnsOrtho(real xMin, real xMax, real yMin, real yMax, real zMin, real zMax);
- void tnsPerspective(real fFov_rad, real fAspect, real zMin, real zMax);
- void tnsPopMatrix();
- void tnsPushMatrix();
- void tnsTranslate3d(real x, real y, real z);
- void tnsPreTranslate3d(real x, real y, real z);
- void tnsRotate4d(real degrees, real x, real y, real z);
- void tnsPreRotate4d(real degrees, real x, real y, real z);
- void tnsScale3d(real x, real y, real z);
- void tnsPreScale3d(real x, real y, real z);
- void tnsColor4d(real r, real g, real b, real a);
- void tnsColor4dv(real *rgba);
- void tnsPolygonMode(GLenum PolyMode);
- void tnsShadeMode(GLenum ShadeMode);
- tnsBatch *tnsCreateBatch(u32bit NumVert, int Dimension, float *Data, int NormalDimension, float *Normal, int ColorDimension, float *Colors);
- tnsBatch *tnsCreateBatchi(u32bit NumVert, int Dimension, int *Data);
- void tnsCommandUseUniformColor(tnsBatchCommand*c,real* color);
- void tnsCommandOverrideColorArray(tnsBatchCommand*c, int VertCount, int ColorDimension, float* colors);
- tnsBatchCommand *tnsCreateCommand(tnsBatch *b, const char* name, u32bit ElementCount, int Dimension, GLenum DrawAs, u32bit *Elements, int HiddenByDefault);
- void tnsDeleteBatch(tnsBatch *b);
- void tnsDrawBatch(tnsBatch* batch, const char* OverrideCommand, real* OverrideUniformColor, int OverrideAsArray);
- void tnsVertex3d(real x, real y, real z);
- void tnsVertex2d(real x, real y);
- void tnsVertexArray2d(real *verts, int amount);
- void tnsVertexArray3d(real *verts, int amount);
- void tnsColorArray4d(real *colors, int amount);
- void tnsNormalArray3d(real *normals, int amount);
- void tnsTexCoordArray2d(real *coords, int amount);
- void tnsTexCoordArray3d(real *coords, int amount);
- void tnsIndexArray(GLuint *index, short amount);
- void tnsPackAs(GLenum Mode);
- void tnsFlush();
- #define tnsLinearItp(L, R, T) \
- ((L) * (1.0f - (T)) + (R) * (T))
- double tnsGetRatiod(real L, real R, real FromL);
- void tnsShaderApplyProjectionInverse(tnsShader *tns, tnsMatrix44d m);
- void tnsShaderApplyProjection(tnsShader *tns, tnsMatrix44d m);
- void tnsShaderApplyModel(tnsShader *tns, tnsMatrix44d m);
- void tnsShaderApplyView(tnsShader *tns, tnsMatrix44d m);
- void tnsShaderApplyNormalScaler(tnsShader *tns, tnsMatrix44d m);
- int tnsLineIntersectTest2d(tnsVector2d a1, tnsVector2d a2, tnsVector2d b1, tnsVector2d b2, double *aRatio);
- double tnsGetLineZ(tnsVector3d L, tnsVector3d R, real Ratio);
- double tnsGetLineZPoint(tnsVector3d L, tnsVector3d R, tnsVector3d FromL);
- double tnsGetRatio3d(tnsVector3d L, tnsVector3d R, tnsVector3d FromL);
- double tnsGetRatiod(real L, real R, real FromL);
- real tnsInterpolate(real L, real R, real T);
- void tnsInterpolate2dv(real *L, real *R, real T, real *Result);
- void tnsInterpolate3dv(real *L, real *R, real T, real *Result);
- void tnsInterpolateTripple2d(tnsVector2d v1, tnsVector2d v2, tnsVector2d v3, real ratio, tnsVector2d result);
- void tnsVectorMinus2d(tnsVector2d result, tnsVector2d l, tnsVector2d r);
- void tnsVectorMinus3d(tnsVector3d result, tnsVector3d l, tnsVector3d r);
- void tnsVectorSubtract3d(tnsVector3d l, tnsVector3d r);
- void tnsVectorPlus3d(tnsVector3d result, tnsVector3d l, tnsVector3d r);
- void tnsVectorAccum3d(tnsVector3d l, tnsVector3d r);
- void tnsVectorAccum2d(tnsVector2d l, tnsVector2d r);
- void tnsVectorNegate3d(tnsVector3d result, tnsVector3d l);
- void tnsVectorNegateSelf3d(tnsVector3d l);
- void tnsVectorCopy2d(tnsVector2d from, tnsVector2d to);
- void tnsVectorCopy3d(tnsVector3d from, tnsVector3d to);
- void tnsVectorCopy4d(tnsVector4d from, tnsVector4d to);
- void tnsVectorMultiSelf4d(tnsVector4d from, real num);
- void tnsVectorMultiSelf3d(tnsVector3d from, real num);
- void tnsVectorMultiSelf2d(tnsVector3d from, real num);
- void tnsVectorMulti4d(tnsVector4d to, tnsVector4d from, real num);
- void tnsVectorMulti3d(tnsVector3d to, tnsVector3d from, real num);
- void tnsVectorMulti2d(tnsVector2d to, tnsVector2d from, real num);
- real tnsDirectionToRad(tnsVector2d Dir);
- void tnsConvert44df(tnsMatrix44d from, tnsMatrix44f to);
- int tnsTrangleLineBoundBoxTest(tnsRenderTriangle *rt, tnsRenderLine *rl);
- #define tnsVectorSet3(to, x,y,z)\
- {to[0]=x;to[1]=y;to[2]=z;}
- #define tnsVectorSet3v(to, from)\
- tnsVectorSet3(to,from[0],from[1],from[2])
- real tnsDistIdv2(real x1, real y1, real x2, real y2);
- real tnsDist3dv(tnsVector3d l, tnsVector3d r);
- real tnsDist2dv(tnsVector2d l, tnsVector2d r);
- real tnsLength3d(tnsVector3d l);
- real tnsLength2d(tnsVector3d l);
- void tnsNormalize3d(tnsVector3d result, tnsVector3d l);
- void tnsNormalizeSelf2d(tnsVector3d result);
- void tnsNormalizeSelf3d(tnsVector3d result);
- real tnsDot3d(tnsVector3d l, tnsVector3d r, int normalize);
- real tnsDot2d(tnsVector2d l, tnsVector2d r, int normalize);
- real tnsVectorCross3d(tnsVector3d result, tnsVector3d l, tnsVector3d r);
- real tnsAngleRad3d(tnsVector3d from, tnsVector3d to, tnsVector3d PositiveReference);
- void tnsApplyRotation33d(tnsVector3d result, tnsMatrix44d mat, tnsVector3d v);
- void tnsApplyRotation43d(tnsVector3d result, tnsMatrix44d mat, tnsVector3d v);
- void tnsApplyTransform43d(tnsVector3d result, tnsMatrix44d mat, tnsVector3d v);
- void tnsApplyNormalTransform43d(tnsVector3d result, tnsMatrix44d mat, tnsVector3d v);
- void tnsApplyTransform44d(tnsVector4d result, tnsMatrix44d mat, tnsVector4d v);
- void tnsApplyTransform44dTrue(tnsVector4d result, tnsMatrix44d mat, tnsVector4d v);
- void tnsLoadIdentity44d(tnsMatrix44d m);
- void tnsMakeOrthoMatrix44d(tnsMatrix44d mProjection, real xMin, real xMax, real yMin, real yMax, real zMin, real zMax);
- void tnsMakePerspectiveMatrix44d(tnsMatrix44d mProjection, real fFov_rad, real fAspect, real zMin, real zMax);
- void tnsMakeTranslationMatrix44d(tnsMatrix44d mTrans, real x, real y, real z);
- void tnsMakeRotationMatrix44d(tnsMatrix44d m, real angle_rad, real x, real y, real z);
- void tnsMakeScaleMatrix44d(tnsMatrix44d m, real x, real y, real z);
- void tnsMakeViewportMatrix44d(tnsMatrix44d m, real w, real h, real Far, real Near);
- void tnsInverse44d(tnsMatrix44d inverse, tnsMatrix44d mat);
- void tnsMultiply44d(tnsMatrix44d result, tnsMatrix44d l, tnsMatrix44d r);
- void tnsMakeRotationXMatrix44d(tnsMatrix44d m, real angle_rad);
- void tnsMakeRotationYMatrix44d(tnsMatrix44d m, real angle_rad);
- void tnsMakeRotationZMatrix44d(tnsMatrix44d m, real angle_rad);
- void tnsRemoveTranslation44d(tnsMatrix44d result, tnsMatrix44d mat);
- void tnsClearTranslation44d(tnsMatrix44d mat);
- real tnsAngleRad3d(tnsVector3d from, tnsVector3d to, tnsVector3d PositiveReference);
- real tnsLength3d(tnsVector3d l);
- void tnsNormalize2d(tnsVector2d result, tnsVector2d l);
- void tnsNormalize3d(tnsVector3d result, tnsVector3d l);
- void tnsNormalizeSelf3d(tnsVector3d result);
- real tnsDot3d(tnsVector3d l, tnsVector3d r, int normalize);
- real tnsVectorCross3d(tnsVector3d result, tnsVector3d l, tnsVector3d r);
- void tnsVectorCrossOnly3d(tnsVector3d result, tnsVector3d l, tnsVector3d r);
- void tnsExtractXYZEuler44d(tnsMatrix44d mat, real *x_result, real *y_result, real *z_result);
- void tnsPrintMatrix44d(tnsMatrix44d l);
- int tnsPointInsideTriangle3d(tnsVector3d v, tnsVector3d v0, tnsVector3d v1, tnsVector3d v2);
- void tnsExtractXYZEuler44d(tnsMatrix44d mat, real *x_result, real *y_result, real *z_result);
- void tnsExtractLocation44d(tnsMatrix44d mat, real *x_result, real *y_result, real *z_result);
- void tnsExtractUniformScale44d(tnsMatrix44d mat, real *result);
- void tnsSelfMatrixChanged(tnsObject* o, int ApplyToChild);
- void tnsGlobalMatrixChanged(tnsObject* o, int ApplyToChild);
- void tnsSelfTransformValueChanged(tnsObject* o);
- void tnsGlobalTransformValueChanged(tnsObject* o);
- void tnsSetCurrentRoot(tnsObject *o);
- void tnsInitObjectBase(tnsObject *o, tnsObject *under, char *Name, int Type,
- real AtX, real AtY, real AtZ,
- real RotX, real RotY, real RotZ, real RotW, u8bit RotationMode,
- real Scale);
- tnsMeshObject *tnsLoadObjectFromFile(char *FileName);
- int tnsLoadExchange(char *FileName);
- tnsObject *tnsFindObject(char *Name, tnsObject *From);
- void tnsCopyObjectTransformationsLocal(tnsObject* to, tnsObject* from);
- void tnsCopyObjectTransformationsGlobal(tnsObject* to, tnsObject* from);
- void tnsRotateObjectGlobal(tnsObject *o, real x, real y, real z, real angle, real cx,real cy,real cz);
- void tnsRotateObjectLocal(tnsObject *o, real x, real y, real z, real angle, real gcx,real gcy,real gcz);
- void tnsRotateObjectLocalValues(tnsObject *o, real x, real y, real z);
- void tnsTranslateObjectGlobal(tnsObject *o, real x, real y, real z);
- void tnsTranslateObjectLocal(tnsObject *o, real x, real y, real z);
- void tnsMoveObjectLocal(tnsObject *o, real x, real y, real z);
- void tnsMoveObjectGlobal(tnsObject *o, real x, real y, real z);
- void tnsScaleObject(tnsObject *o, real fac, real cx,real cy,real cz);
- int tnsCheckParentable(tnsObject* child, tnsObject* parent);
- void tnsParentObject(tnsObject *child, tnsObject *parent, int KeepTransform);
- void tnsUnparentObject(tnsObject *o, int KeepTransform);
- void tnsZoomViewingCamera(tnsCamera *c, real Ratio);
- void tnsRotateViewingCamera(tnsCamera *c, real x, real z);
- void tnsTranslateViewingCamera(tnsCamera *c, int ViewportW, int ViewportH, real x, real y);
- void tnsGetCameraMovingDeltas(tnsCamera *c, int ViewportW, int ViewportH, real x, real y, tnsVector4d p);
- laPropContainer* tnsget_ObjectType(tnsObject* o);
- void tnsDestroyRootObject(tnsObject *root);
- void tnsDestroyObject(tnsObject *o);
- tnsObject *tnsCreateRootObject(char *name);
- tnsCamera *tnsCreateCamera(tnsObject *under, char *Name, real FOV,
- real AtX, real AtY, real AtZ,
- real RotX, real RotY, real RotZ,
- real FocusDistance);
- tnsObject *tnsCreateEmpty(tnsObject *under, char *Name, real AtX, real AtY, real AtZ);
- tnsLight *tnsCreateLight(tnsObject *under, char *Name, real AtX, real AtY, real AtZ, real Strength, int UniDirectional);
- tnsMeshObject *tnsCreateMeshEmpty(tnsObject *under, char *Name, real AtX, real AtY, real AtZ);
- tnsMeshObject *tnsCreateMeshPlane(tnsObject *under, char *Name, real AtX, real AtY, real AtZ, real size);
- int tnsMergeMeshObjects(tnsMeshObject* into, tnsMeshObject* mo);
- tnsMeshObject* tnsDuplicateMeshObjects(tnsMeshObject* from);
- void tnsInitMeshPlane(tnsMeshObject* mo, real size);
- void tnsAddMMeshPlane(tnsMeshObject* mo, real size);
- int tnsAnyObjectsSelected(tnsObject* parent);
- void tnsDeselectAllObjects(tnsObject* parent);
- void tnsSelectAllObjects(tnsObject* parent);
- void tnsSelectObject(tnsObject* o, int Select, int Toggle);
- tnsMFace* tnsMMeshNewFace(tnsMeshObject* mo);
- tnsMEdge* tnsMMeshNewEdge(tnsMeshObject* mo);
- tnsMVert* tnsMMeshNewVert(tnsMeshObject* mo);
- void tnsMMeshEdgeAssignVerts(tnsMEdge* me,tnsMVert* mv1,tnsMVert* mv2);
- tnsMEdge* tnsMMeshVertShareEdge(tnsMVert* mv0, tnsMVert* mv1);
- int tnsMMeshEdgeHasVert(tnsMEdge* me, tnsMVert* MV);
- tnsMVert* tnsMMeshEdgeShareVert(tnsMEdge* me0, tnsMEdge* me1);
- tnsMVert* tnsMMeshEdgeAnotherVert(tnsMEdge* me, tnsVert* v);
- tnsMVert* tnsMMeshEdgeStartingVert(tnsMEdge* me0, tnsMEdge* me1);
- int tnsMMeshSplitFace(tnsMeshObject* mo, tnsMFace* mf, tnsMEdge* me, tnsMFace** r_f1, tnsMFace** r_f2);
- void tnsMMeshFaceAddEdge(tnsMFace* mf, tnsMEdge* me);
- int tnsMMeshFaceMatches(tnsMFace* mf, int ecount, ...);
- tnsMFace* tnsMMeshMakeFaceN(tnsMeshObject* mo, int count, laListHandle* vip, tnsMEdge** r_fallback_me);
- tnsMFace* tnsMMeshMakeFace4v(tnsMeshObject* mo, tnsVert* v1,tnsVert* v2,tnsVert* v3,tnsVert* v4);
- int tnsMMeshLoopIsInverted(laListItemPointer* l);
- int tnsMMeshEdgeInsertVert(tnsMeshObject* mo, tnsMEdge* me, tnsMVert* mv, tnsMVert* ref_e1v_optional, tnsMEdge** r_e1, tnsMEdge** r_e2);
- tnsMVert* tnsMMeshEdgeInsertVertAt(tnsMeshObject* mo, tnsMEdge* me, real at, tnsMVert* ref_e1v_optional, tnsMEdge** r_e1, tnsMEdge** r_e2);
- void tnsMMeshRemoveFaceOnly(tnsMeshObject* mo, tnsMFace* mf);
- void tnsMMeshRemoveEdgeFace(tnsMeshObject* mo, tnsMEdge* me);
- void tnsMMeshRemoveVertEdgeFace(tnsMeshObject* mo, tnsMVert* mv);
- void tnsMMeshRefreshIndex(tnsMeshObject* mo);
- void tnsMeshEnterEditMode(tnsMeshObject* mo);
- void tnsMeshLeaveEditMode(tnsMeshObject* mo);
- int tnsMMeshAnySelected(tnsMeshObject* mo);
- void tnsMMeshClearPickedFlags(tnsMeshObject* mo);
- void tnsMMeshDeselectAll(tnsMeshObject* mo);
- void tnsMMeshSelectAll(tnsMeshObject* mo);
- void tnsMMeshSelectVert(tnsMeshObject* mo, tnsMVert* mv, int select, int toggle);
- void tnsMMeshSelectEdge(tnsMeshObject* mo, tnsMEdge* me, int select, int toggle);
- void tnsMMeshEnsureSelectionFromVerts(tnsMeshObject* mo);
- void tnsMMeshEnsureSelectionFromEdges(tnsMeshObject* mo);
- void tnsMMeshEnsureSelection(tnsMeshObject* mo, int SelectMode);
- void tnsInvalidateMeshBatch(tnsMeshObject* mo);
- void tnsRegenerateMeshBatch(tnsMeshObject* mo);
- void tnsEnsureMeshBatch(tnsMeshObject* mo);
- void tnsDrawMeshObject(tnsMeshObject* mo, int DrawAsObjectSelection, int MeshSelectionMode, tnsMeshObject* Active);
- void la_RegisterModellingOperators();
- void tnsGetCameraViewProjection(tnsMatrix44d* mat, int w, int h, tnsCamera* Camera);
- void tnsApplyCameraView(int W, int H, tnsCamera *Camera);
- void tnsApplyShadowCameraView(tnsLight *Light);
- void tnsApplyObjectMatrix(tnsObject *Object);
- void tnsLookAt(tnsObject *o, tnsVector3d Target, tnsVector3d Up);
- void tnsDrawThisObject(tnsObject *o, tnsObject *active, int DrawAsObjectSelection, int MeshSelectionMode);
- void tnsDrawObjectTree(tnsObject *from, tnsObject *active, int DrawAsObjectSelection, int MeshSelectionMode);
- void tnsDrawScene(int W, int H, tnsObject *root);
- void tnsDrawWorld(int W, int H);
- tnsMaterial *tnsCreateMaterial(char *Name);
- tnsMaterial *tnsFindMaterialByIndex(int index);
- tnsMaterial *tnsFindMaterial(char *name);
- void tnsClearAll();
- void tnsClearColorv(real *rgba);
- void tnsClearColor(real r, real g, real b, real a);
- void tnsSwitchToCurrentWindowContext(void *wnd);
- void tnsRecalculateVertNormal(tnsVert *v);
- void tnsRecalculateFaceAverageNormal(tnsFace *f);
- int tnsLoadVectorGraphPackage(const char *name, unsigned int size);
- int tnsGetMonoFontAdvance();
- int tnsInvalidateFontCache();
- void tnsLoadSystemFontMono(char* mono);
- void tnsLoadSystemFont(int num_fonts, ...);
- int tnsGetTextureMemoryComponetCount(tnsTexture *t);
- int tnsInit2DTexture(tnsTexture *t, GLint glInternalFormat, int w, int h, int Multisample);
- tnsTexture *tnsCreate2DTexture(GLint glInternalFormat, int w, int h, int Multisample);
- tnsTexture *tnsCreate3DTexture(GLint glInternalFormat, int w, int h, int slices);
- void tnsConfigure2DTexture(tnsTexture *t);
- void tnsConfigure3DTexture(tnsTexture *t);
- void tnsReconfigureTextureParameters(int Multisample);
- tnsOffscreen *tnsCreate2DOffscreen(int glInternalFormat, int w, int h, int Multisample, int WithDepth);
- void tnsCopyScreenTo2DTexture(tnsTexture *target, int x_lower_left, int y_lower_left, int w, int h);
- void tnsActiveTexture(GLenum tex);
- void tnsBindTexture(tnsTexture *t);
- void tnsUnbindTexture();
- void tnsUniformUseTexture(tnsShader* s, int mode, int sample);
- void tnsUniformUseMultiplyColor(tnsShader* s, int enable);
- void tnsUseMaskTexture(tnsTexture *t);
- void tnsUseTexture(tnsTexture *t);
- void tnsUseNoTexture();
- void tnsUseMultiplyColor(int enable);
- void tnsDeleteTexture(tnsTexture *t);
- void tnsDraw2DTextureDirectly(tnsTexture *t, real x, real y, real w, real h);
- void tnsDraw2DTextureArg(tnsTexture *t,
- real x_upper_right, real y_upper_right, int w, int h,
- real *MultiplyColor,
- real LPadding, real RPadding, real TPadding, real BPadding);
- int tnsTextureMemorySize(tnsTexture *t, int mem);
- void tnsCreateTextureReadbackBuffer(tnsTexture *t);
- void tnsDeleteTextureReadbackBuffer(tnsTexture *t);
- void tnsReadbackTexture(tnsTexture *t);
- #define TNS_CLAMP_TEXTURE_W(t, Col) \
- { \
- if (Col >= t->Width) \
- Col = t->Width - 1; \
- if (Col < 0) \
- Col = 0; \
- }
- #define TNS_CLAMP_TEXTURE_H(t, Row) \
- { \
- if (Row >= t->Height) \
- Row = t->Height - 1; \
- if (Row < 0) \
- Row = 0; \
- }
- #define TNS_CLAMP_TEXTURE_CONTINUE(t, Col, Row) \
- { \
- if (Col >= t->Width) \
- continue; \
- if (Col < 0) \
- continue; \
- if (Row >= t->Height) \
- continue; \
- if (Row < 0) \
- continue; \
- }
- void tnsDelete2DOffscreen(tnsOffscreen *o);
- tnsOffscreen *tnsCreateOffscreenHandle();
- void tnsConfigureOffscreen(tnsOffscreen *off, int w, int h);
- void tnsAttach2DOffscreenBuffer(tnsOffscreen *target, GLuint attatchment, tnsTexture *use);
- void tnsDetach2DOffscreenBuffer(tnsOffscreen *target, GLuint which_attach_point);
- void tnsDrawToOffscreen(tnsOffscreen *toff, int HowMany, GLuint *AttachmentArray);
- void tnsDrawToExtraColorAttachment(tnsOffscreen *toff);
- void tnsDrawToExtraNormalAttachment(tnsOffscreen *toff);
- void tnsDrawToAllExtraAttachments(tnsOffscreen *toff);
- void tnsDrawToOffscreenOnlyBind(tnsOffscreen *toff, int HowMany, GLuint *AttachmentArray);
- void tnsReadFromOffscreen(tnsOffscreen *toff);
- void tnsPassColorBetweenOffscreens(tnsOffscreen *from, tnsOffscreen *to,
- GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLenum FilterMode);
- void tnsDrawToScreen();
- int tnsUseFont(char *name);
- int laStopFontService();
- tnsFontSingleCharacter *tfntFetchVectorGraphTextureIDW(uint32_t ID);
- int tnsStringGetDimension(char* content, uint32_t* contentU, int Count, int WLimit, int* Rows, int UseMono);
- int tnsStringGetWidth(char *content, int Count, int UseMono);
- int tnsStringGetWidthU(uint32_t *contentU, int Count, int UseMono);
- void tnsDrawStringM(char *content, uint32_t* contentU, real Color[4], int L, int R, int T, int Flags);
- void tnsDrawStringAutoM(char *content, uint32_t* contentU, real Color[4], int L, int R, int T, int Flags);
- void tnsDrawStringAuto(char *content, real Color[4], int L, int R, int T, int Flags);
- void tnsDrawStringWithPriority(char *Label, char *MajorContent, real Color[4], int TextAlign, int L, int R, int T, int Flags);
- void tnsDrawVectorGraphPackage(int ID, real Color[4], int L, int R, int T, int B, int Align, int Flags);
- void tnsDrawIcon(uint32_t ID, real Color[4], int L,int R, int T, int Flags);
- void tnsUseFontCoord(real x, real y, real size);
- void tnsMakeTriangle(real *arr, real x1, real y1, real x2, real y2, real x3, real y3);
- void tnsMakeQuad2d(real *arr, real x1, real y1, real x2, real y2, real x3, real y3, real x4, real y4);
- void tnsMakeQuadT2d(real *arr, real x1, real y1, real x2, real y2, real x3, real y3, real x4, real y4);
- void tnsMakeQuad3d(real *arr, real x1, real y1, real z1, real x2, real y2, real z2, real x3, real y3, real z3, real x4, real y4, real z4);
- void tnsMakeQuad4d(real *arr, real x1, real y1, real z1, real w1, real x2, real y2, real z2, real w2, real x3, real y3, real z3, real w3, real x4, real y4, real z4, real w4);
- void tnsMakeCircle2d(real *arr, int slices, real ctrX, real ctrY, real r);
- void tnsMakeArc2d(real *arr, int slices, real ctrX, real ctrY, real r, real rad_begin, real rad_end);
- void tnsMakeRing2d(real *arr, int *index, int slices, real ctrX, real ctrY, real r1, real r2);
- void tnsMakeLinerGradient3d(real *arr, int num_points, real r0, real g0, real b0, real r1, real g1, real b1);
- void tnsMakeLinerGradient4d(real *arr, int num_points, real r0, real g0, real b0, real a0, real r1, real g1, real b1, real a1);
- void tnsMakeLinerGradient3dv(real *arr, int num_points, real *rgb0, real *rgb1);
- void tnsMakeLinerGradient4dv(real *arr, int num_points, real *rgb0, real *rgb1);
- void tnsMakeFoucsSquare(int L, int R, int U, int B, int W);
- void tnsDrawFloor(int Size, int Span, int *ShowAxis);
- void tnsMakeIndexUInt(unsigned int *result, int num, ...);
- void tnsMakeBridgedIndex(unsigned int *result, int num, int revert, int begin);
- void DrawWireRect2dp(real x, real y, real x2, real y2);
- void tnsViewportWithScissor(int x, int y, int w, int h);
- void tnsSingleLinearToLog(real *a, real gamma);
- void tnsSingleLogToLinear(real *a, real gamma);
- void tnsLinearToLog(real *rgb, real gamma);
- void tnsLogToLinear(real *rgb, real gamma);
- void tnsRgbToLuminance(real *rgb);
- void tnsHCYtoRGB(real *hcy, real *rgb);
- void tnsRGBtoHCY(real *rgb, real *hcy);
- tnsLineStrip *tnsCreateLineStrip();
- tnsLineStripPoint *tnsAppendPoint(tnsLineStrip *ls, real X, real Y, real Z);
- tnsLineStripPoint *tnsPushPoint(tnsLineStrip *ls, real X, real Y, real Z);
- void tnsRemovePoint(tnsLineStrip *ls, tnsLineStripPoint *lsp);
- void tnsDestroyLineStrip(tnsLineStrip *ls);
- void tnsGetGaussianKernel(tnsFilterKernel *fk, int size, real sigma);
- void *tnsTextureSampleSafe(tnsTexture *t, int Col, int Row);
- int tnsTextureSampleWeightSafe(tnsTexture *t, int Col, int Row, real Size, tnsVector2d Direction);
- real tnsTextureSampleSafeGaussU8R(tnsTexture *t, tnsFilterKernel *fk, int Col, int Row);
- void tnsTextureSetBitSafeU8R(tnsTexture *t, int Col, int Row, int Bit);
- void tnsTextureSetRGBSafeU8R(tnsTexture *t, int Col, int Row, u8bit r, u8bit g, u8bit b);
- u8bit *tnsTextureSampleU8(tnsTexture *t, int Col, int Row);
|