亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? imode.h

?? Windows上的MUD客戶端程序
?? H
字號:
/********************************************************************/
/* IMODE.H                                                          */
/* Immediate mode interface for Reality Lab                         */
/********************************************************************/

#ifndef __IMODE_H__
#define __IMODE_H__

#include "rl.h"

#ifdef __psx__
#include "libgte.h"
#include "libgpu.h"
#endif

#if defined(__cplusplus)
extern "C"
{
#endif

/********************************************************************/
/* RLIMValue is the fundamental Immediate Mode fractional data type */
/********************************************************************/

/* The IMVAL(val, prec) initialises an RLIM<prec>Value,
 * where prec may be 12, 16, or 24
 *
 * RLTOIMVAL(val, prec) converts an RLValue to an RLIM<prec>Value
 */
#ifdef FIXED_POINT_INTERNAL

typedef long RLIMValue, RLIM12Value, RLIM16Value, RLIM24Value;
#define IMVAL(val, prec) ((RLIMValue)((double)(val) * ((double)(1L << prec))))

#ifdef FIXED_POINT_API
#define RLTOIMVAL(val, prec) ((val) >> 16 - prec)
#else
#define RLTOIMVAL(val, prec) IMVAL(val, prec)
#endif

#else

typedef float RLIMValue, RLIM12Value, RLIM16Value, RLIM24Value;
#define IMVAL(val, prec) ((RLIMValue) (val))

#ifdef FIXED_POINT_API
#define RLTOIMVAL(val, prec) ((RLIMValue) ((double)(val) / ((double)(1L << 16))))
#else
#define RLTOIMVAL(val, prec) ((RLIMValue) (val))
#endif

#endif

/********************************************************************/
/* Opaque types for internal system use                             */
/********************************************************************/

typedef RLIMValue RLInternal_v;
typedef int RLInternal_i;
typedef long RLInternal_l;
typedef unsigned long RLInternal_ul;
typedef unsigned char RLInternal_uc;

/********************************************************************/
/* Immediate Mode data types                                        */
/********************************************************************/

typedef int RLIMFlag; /* boolean value */

#define IMRGBA(red, green, blue, alpha) /* RGB mode only; values in range 0..255 */\
    (((alpha) << 24) | ((red) << 16) | ((green) << 8) | (blue))
typedef RLInternal_ul RLIMColour;

typedef struct _RLIMVector
{   RLIM12Value x, y, z;
} RLIMVector, RLIMPositionVector, RLIMDirectionVector;

/* lightable point in model space */
typedef struct _RLIMLightingPoint
{   RLIMDirectionVector normal; /* normalised unit vector */
    RLIMPositionVector position;
} RLIMLightingPoint;

/* Transformed vertex */
typedef struct _RLIMViewVertex
{   RLIMColour colour;     /* vertex colour (for smooth shading) */
    RLInternal_ul specular;
    RLIM16Value sx;        /* screen coordinates */
    RLIM16Value sy;
    RLIM24Value sz;
    RLIM16Value hw;
    RLIM16Value tu;        /* texture u coordinate */
    RLIM16Value tv;        /* texture v coordinate */
    RLInternal_i clip;
    RLInternal_v hx;
    RLInternal_v hy;
    RLInternal_v hz;
} RLIMViewVertex;

/* Material properties */
typedef struct _RLIMSurfaceInfo
{   RLInternal_ul diffuse;
    RLInternal_ul ambient;
    RLInternal_ul specular;
    RLInternal_ul emissive;
    RLInternal_v power;
    RLInternal_i ramp_size;
    RLInternal_ul texture;
    RLInternal_uc specular_table[260];
} RLIMSurfaceInfo;

/* Triangle to be renderered */
typedef struct _RLIMTriangle
{   RLIMViewVertex* v[3];	    /* triangle vertices in clockwise order */
    RLIMColour colour; 		    /* triangle colour (for flat shading) */
    RLInternal_ul specular;
    RLInternal_ul flags;
    struct _RLIMTriangle* next;	    /* next triangle in a sorted list */
    RLIMSurfaceInfo* mat;	    /* phong shading only */
#ifdef __psx__
    POLY_GT3 prim[2];		    /* PSX only: double buffered primitives */
    SVECTOR p[3];      		    /* PSX only: model coords */
    long initialised;		    /* PSX only: initialisation flags */
#endif
} RLIMTriangle;

/********************************************************************/
/* Memory Allocation                                                */
/********************************************************************/

/* To ensure compatability with future hardware, use the following
 * functions to allocate memory for polygon information
 */

/* RLIMAllocateVertices()
 * Allocate a number of vertices.
 * Specify the size of each vertex (sizeof(RLIMViewVertex) + user data),
 * and number of vertices
 */
RLIMViewVertex* RLIMAllocateVertices
    (RLDevice dev, size_t vertexSize, size_t count);

/* RLIMAllocateTriangles()
 * Allocate a number of triangles.
 * Specify the size of each triangle (sizeof(RLIMTriangle) + user data),
 * and number of triangles
 */
RLIMTriangle* RLIMAllocateTriangles
    (RLDevice dev, size_t triangleSize, size_t count);

/* RLIMFreeVertices()
 * RLIMFreeTriangles()
 */
void RLIMFreeVertices(RLDevice dev, RLIMViewVertex* vertices);
void RLIMFreeTriangles(RLDevice dev, RLIMTriangle* triangles);

/********************************************************************/
/* Transform                                                        */
/********************************************************************/

typedef enum
{   RLIM_ALL_VISIBLE = 0, /* all vertices are within the viewport */
    RLIM_SOME_VISIBLE,
    RLIM_NONE_VISIBLE
} RLIMClippingFlag;

/* RLIMTransformVertices()
 * Transforms model coordinates to viewport coordinates
 */
RLIMClippingFlag RLIMTransformVertices
(   RLViewport view,            /* viewport */
    RLFrame transform,          /* transform to use */
    RLIMPositionVector* source, /* array of position vectors */
    RLIMViewVertex* destination,/* destination for transformed coordinates */
    size_t sourceSize,          /* size of source elements */
    size_t destinationSize,     /* size of destination elements */
    size_t vertexCount,         /* number of elements to transform */
    RLIMFlag checkClipping      /* return clipping flag if true */
);

/********************************************************************/
/* Lighting                                                         */
/********************************************************************/

/* RLIMInitialiseSurfaceInfo()
 * Sets up a SurfaceInfo structure for use in lighting calculations
 */
RLError RLIMInitialiseSurfaceInfo
(   RLDevice device,
    RLMaterial material,
    RLColour colour,
    RLTexture texture,
    RLIMSurfaceInfo* surface /* structure to initialise */
);

/* RLIMLightMeshPoints()
 * Calculates illuminated colours of world model points, using surface info;
 * results may be placed in triangles (for flat shading)
 * or viewport vertices (for smooth shaded triangles)
 * When the triangle is drawn, required palette entries will be allocated,
 * possibly reusing the entries assigned for unused materials
 */
RLError RLIMLightMeshPoints
(   RLViewport view,
    RLFrame frame,
    RLIMSurfaceInfo* surface,
    RLIMLightingPoint* vertices,
    RLIMColour* destination,    /* colour field in RLIMViewVertex or RLIMTriangle */
    size_t vertexSize,
    size_t destinationSize,
    size_t count
);

/* RLIMColourMeshPoints()
 * Assigns the unlit colour in a RLIMSurfaceInfo to RLIMColour fields,
 * ie. in viewport vertices or triangles.
 * In subsequent frames, the objects do not need to be recoloured
 * provided RLIMcolourStillValid() returns true or RGB mode is used
 */
RLError RLIMColourMeshPoints
(   RLViewport view,
    RLIMSurfaceInfo* colour,
    RLIMColour* dest,
    size_t destSize,
    size_t count
);

/* RLIMColourStillValid()
 * Checks whether palette entries used to light or colour meshes are
 * still valid, and if so, informs the palette manager that the palette
 * entries are still in use.
 * If it returns false, the meshes should be lit or coloured again.
 * This call is not needed in RGB mode.
 */
RLIMFlag RLIMColourStillValid
(   RLViewport view,
    RLIMSurfaceInfo* colour
);

/********************************************************************/
/* Device settings                                                  */
/********************************************************************/

/* RLIMSetDithering()
 * RLIMSetPerspectiveCorrection()
 * RLIMSetGamma()
 *
 * Set device properties
 *    dithering on/off
 *    perspective correction on/off
 *    gamma correction value
 */
RLError RLIMSetDithering(RLDevice, RLIMFlag);
RLError RLIMSetPerspectiveCorrection(RLDevice, RLIMFlag);
RLError RLIMSetGamma(RLDevice, RLIM16Value);

/********************************************************************/
/* Triangle drawing                                                 */
/********************************************************************/

typedef enum
{   RLIM_WIRE_QUALITY,
    RLIM_UNLIT_QUALITY,
    RLIM_FLAT_QUALITY,
    RLIM_SMOOTH_QUALITY
} RLIMRenderQuality;

/* RLIMSetCurrentFill()
 * Sets the parameters for the current triangle fill.
 *
 * When drawing a textured triangle, the renderer interpolates between
 * the texture coordinates of the triangle's vertices. wrapTextureU and
 * wrapTextureV determine the topology of the texture, ie whether the
 * interpolation path may wrap around the texture image edges in the U
 * and V directions
 */
RLError RLIMSetCurrentFill
(   RLViewport viewport,
    RLTexture texture,
    RLIMFlag wrapTextureU,
    RLIMFlag wrapTextureV,
    RLIMFlag transparent  /* enable transparency */
);

/* RLIMDrawTriangles()
 * Renders triangles to the specified viewport
 * useClipping must be true unless all triangles are known to be unclipped
 */
RLError RLIMDrawTriangles
(   RLViewport viewport,
    RLIMTriangle* triangles,
    size_t size,
    size_t count,
    RLIMRenderQuality quality,
    RLIMFlag useClipping
);

#if defined(__cplusplus)
};
#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产美女在线精品| 国产高清无密码一区二区三区| 国产亚洲精品aa午夜观看| 欧美一区二区三区四区久久| 日韩一级片网站| 日韩精品一区在线| 国产免费成人在线视频| 国产精品成人一区二区三区夜夜夜 | 日欧美一区二区| 亚洲成a人片综合在线| 日韩中文字幕av电影| 五月婷婷综合网| 久久 天天综合| 成人美女视频在线看| 色一情一伦一子一伦一区| 欧美在线你懂得| 日韩欧美成人一区| 国产精品区一区二区三| 亚洲精品videosex极品| 老司机免费视频一区二区| 成人免费电影视频| 欧亚一区二区三区| 欧美成人bangbros| 亚洲日本va在线观看| 日韩电影免费一区| 国产成a人亚洲精| 欧美专区日韩专区| 亚洲精品在线免费观看视频| 综合分类小说区另类春色亚洲小说欧美| 国产精品成人网| 日韩在线一区二区三区| 成人白浆超碰人人人人| 欧美高清视频一二三区 | 亚洲色图欧洲色图| 日本最新不卡在线| av午夜精品一区二区三区| 在线不卡中文字幕播放| 欧美国产精品中文字幕| 午夜激情一区二区| 波多野结衣亚洲| 久久综合资源网| 亚洲一区二区成人在线观看| 国产精品亚洲一区二区三区妖精| 欧美性生活大片视频| 国产精品视频免费看| 青青国产91久久久久久| 91丨porny丨首页| 久久色在线观看| 日韩精品每日更新| 色婷婷亚洲综合| 中文字幕成人av| 久久爱另类一区二区小说| 在线观看免费一区| 综合欧美亚洲日本| 国产酒店精品激情| 欧美一级在线视频| 亚洲国产日韩精品| 91免费看片在线观看| 国产女人aaa级久久久级 | 欧美三区免费完整视频在线观看| 中文字幕不卡三区| 国产乱子伦一区二区三区国色天香| 欧美日韩国产成人在线91| 亚洲最快最全在线视频| 99久久伊人精品| 亚洲欧美中日韩| 不卡视频在线看| 国产精品网站一区| 丁香天五香天堂综合| 久久这里只精品最新地址| 久久97超碰色| 精品美女一区二区三区| 久久成人免费网| 欧美变态口味重另类| 日韩电影在线免费看| 欧美日本乱大交xxxxx| 日韩国产在线一| 日韩视频国产视频| 久久se精品一区二区| 精品三级av在线| 国产成人在线视频网站| 国产精品日韩成人| 91视频一区二区| 亚洲午夜影视影院在线观看| 欧美日韩精品免费| 免费观看日韩电影| 亚洲精品一区二区三区99| 国产乱码字幕精品高清av | 午夜精彩视频在线观看不卡| 欧美精品久久久久久久多人混战 | 欧美一区二区播放| 国产精品资源网| 亚洲日本在线观看| 欧美日韩一区二区在线观看| 亚洲第一主播视频| 精品国产91洋老外米糕| 国产精品一区二区无线| 国产精品久久久久久久久动漫| 日本韩国欧美在线| 免费一级片91| 国产精品美女久久久久久| 欧美系列一区二区| 国产在线播放一区| 亚洲日本一区二区| 日韩欧美国产wwwww| www.亚洲免费av| 午夜精品福利一区二区三区av| 久久久午夜精品理论片中文字幕| 成人av影院在线| 日韩av中文字幕一区二区三区| 久久久久久久久97黄色工厂| 欧美天堂一区二区三区| 国产精品一区2区| 午夜影视日本亚洲欧洲精品| 久久精品亚洲麻豆av一区二区 | 欧美日本免费一区二区三区| 国产精品亚洲视频| 午夜久久福利影院| 亚洲色图在线看| 欧美mv日韩mv国产网站app| 色婷婷久久久综合中文字幕| 精品一区二区三区不卡| 五月激情丁香一区二区三区| 国产精品女同一区二区三区| 欧美一区二区三区在线观看| 色天天综合色天天久久| 夫妻av一区二区| 捆绑变态av一区二区三区| 日韩美女视频一区二区 | 91麻豆精品国产自产在线观看一区| 国产激情一区二区三区| 日韩电影在线免费看| 亚洲欧美一区二区久久 | 欧美午夜寂寞影院| 波多野结衣中文字幕一区| 久久丁香综合五月国产三级网站| 亚洲国产精品久久艾草纯爱| 亚洲色图制服丝袜| 国产精品欧美精品| 国产欧美精品一区二区色综合朱莉| 日韩欧美一区二区视频| 欧美日韩高清在线| 在线观看国产一区二区| 91偷拍与自偷拍精品| 99久久久久久99| 91影院在线免费观看| 97久久超碰精品国产| 99精品久久免费看蜜臀剧情介绍| 丰满白嫩尤物一区二区| 盗摄精品av一区二区三区| 国产成人在线免费| 成人在线视频一区| 成人黄色片在线观看| 国产成人在线观看免费网站| 国产精品系列在线播放| 成人一二三区视频| 成人av免费在线观看| 97精品国产97久久久久久久久久久久| 懂色一区二区三区免费观看| 成人小视频在线观看| 99久久婷婷国产综合精品| 91成人在线免费观看| 欧美色偷偷大香| 欧美老肥妇做.爰bbww| 欧美一级xxx| 国产婷婷色一区二区三区在线| 欧美国产1区2区| 亚洲欧洲日本在线| 亚洲成人自拍网| 日韩成人一级片| 国产成人综合视频| 在线观看日韩毛片| 制服.丝袜.亚洲.另类.中文 | 国产精品成人午夜| 亚洲国产精品久久艾草纯爱| 久草中文综合在线| 成人三级在线视频| 欧美在线视频日韩| 精品国产不卡一区二区三区| 国产三级欧美三级日产三级99| 亚洲精品你懂的| 精品在线视频一区| 99久久国产综合精品女不卡| 欧美日韩国产综合视频在线观看| 欧美电影免费观看高清完整版在线 | 一区二区视频在线看| 婷婷开心激情综合| 国产成人午夜精品5599| 91成人看片片| 精品国产乱码久久久久久闺蜜 | 欧美性大战xxxxx久久久| 精品国产在天天线2019| 一区二区在线观看av| 国内外精品视频| 在线观看视频一区| 国产女人18毛片水真多成人如厕 | 成人午夜免费电影| 欧美精品视频www在线观看 | 在线一区二区三区四区| 国产欧美日韩精品一区|