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

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

?? our_3d.h

?? 這是一個簡單的3d動畫mmi,這是模擬器上的
?? H
字號:
/**************************************************************************
Copyright (C) jianbo miao Corporation.  All Rights Released.
this is a 3d engin named our_3d_engin.
our_3d_engin feature:
1:there is no float.
2:it do the 3d things all by softwear.
3:base on 1 and 2 , it can execution on arm which have no 3d hardwear accelerate.

  if you have any  suggestion or question,pls contact with me.
  mail:miaojb@126.com.
  msn:miaojianbo@hotmail.com.
  qq:30209027.
  
    2008/01/01
***************************************************************************/


#ifndef OUR_3D
#define OUR_3D

//================================================================================================
//================================================================================================

#include "our_cpu.h"
#include "our_math.h"
#include "our_bmp.h"

#define SCALE_1 (10)
//--------------------OBJ state----------------------
#define OBJ_CHANGED 1

//--------------------LIT state----------------------
#define LIT_point               1
#define LIT_parallel            2
#define LIT_condition		3
//--------------------material ----------------------
enum
{
    MATERIAL_point_1,
        MATERIAL_point_1P,
        MATERIAL_point_3T,
        MATERIAL_Triangle_1,
        MATERIAL_Triangle_T,
        //MATERIAL_obj,
        MATERIAL_wire,
        MATERIAL_bmp,
};
#define MATERIAL_MASK	(0x0f)


#define MATERIAL_oneside	(0<<5)
#define MATERIAL_towside   	(1<<5)

#define MATERIAL_cmp_n       	(0<<6)
#define MATERIAL_cmp_z       	(1<<6)

#define MATERIAL_pre_z       	(1<<30)


enum
{
    OBJ_R_XYZ,
    OBJ_R_XYZ_ADD,
};
//================================================================================================

#define OUR_RGB32_2_16(clr) 	(((clr & 0xff )>>3) + ((clr& 0xfc00) >> 5) + ((clr & 0xf80000) >>8))


//RGB Masks for 5.6.5 mode
//DDPF_RGB  16 R: 0x0000F800  
//             G: 0x000007E0  
//             B: 0x0000001F  

//RGB Masks for 5.5.5 mode
//DDPF_RGB  16 R: 0x00007C00  
//             G: 0x000003E0  
//             B: 0x0000001F  
#define OUR_RGB16BIT565(r,g,b) 	(((b & 0xf8 )>>3) + ((g & 0xfc) << 3) + ((r & 0xf8) << 8))


//LIGHT Masks for 171717 mode
//DDPF_RGB  16 G: 0x007E0000 
//             R: 0x0000f800  
//             B: 0x0000001F  
#define OUR_LIGHT_CLR565(r,g,b)	(((b & 0xf8)>>3) + ((g & 0xfc) << 19) + ((r & 0xf8) << 8))
#define OUR_LIGHT_MASK565		(0x1f  + 0x7E00000+ 0xf800)	//bgr

#define OUR_LIGHT_MASK500		(0xf800)	//
#define OUR_LIGHT_MASK060		(0x7E0)	//
#define OUR_LIGHT_MASK005		(0x1f)	//
#define OUR_LIGHT_MASK5000		(0x1f0000)//


#define OUR_RGB_MASK500		(0xf800)	//
#define OUR_RGB_MASK060		(0x7E0)	//
#define OUR_RGB_MASK005		(0x1f)	//
#define OUR_RGB_MASK5000		(0x1f0000)//

#define OUR_RGB_MASK8000             (0xff000000)
#define OUR_RGB_MASK0500             (0x00f80000)
#define OUR_RGB_MASK0060             (0x0000fc00)
#define OUR_RGB_MASK0005             (0x000000f8)

#define OUR_RGB32_A(a,r,g,b) 	        (b  + ((g ) << 8) + ((r) << 16)+ ((a) <<24))
#define OUR_RGB32(r,g,b) 	        (b  + ((g ) << 8) + ((r) << 16))
#define OUR_RGB16_A(a,r,g,b) 	       (((b & 0xf8 )>>3) + ((g & 0xfc) << 3) + ((r & 0xf8) << 8))
#define OUR_RGB16(r,g,b) 	       (((b & 0xf8 )>>3) + ((g & 0xfc) << 3) + ((r & 0xf8) << 8))
#define OUR_RGB_MASK8000             (0xff000000)
#define OUR_RGB_MASK0800             (0x00ff0000)
#define OUR_RGB_MASK0080             (0x0000ff00)
#define OUR_RGB_MASK0008             (0x000000ff)
#define OUR_RGB_MASK0088             (0x00000fff)
#define OUR_RGB_MASK8800             (0x0fff0000)


#define OUR_UV_MASK8800               	(0xffff0000)
#define OUR_UV_MASK0088            	(0x0000ffff)

#define OUR_RGB_MASK7000          	(0xfe000000)
#define OUR_RGB_MASK0700             (0x00fe0000)
#define OUR_RGB_MASK0070             (0x0000fe00)
#define OUR_RGB_MASK0007             (0x000000fe)
#define OUR_RGB_MASK7070             (0xfe00fe00)
#define OUR_RGB_MASK0707             (0x00fe00fe)
#define OUR_RGB_MASK7777             (0xfefefefe)
//---------------------------------------------------
//12+12+12+4=40B
typedef struct OUR_3D_TRAG_TYP
{
    //	UINT state_attr;			// state information
    /*	union
    {
    UCHAR              c[4];
    CLR			 clor;
    }CC;
    union
    {
    UCHAR              c[4];
    CLR			 clor;
    }CC_work;
    */
    FIX_POINT3D NOR_P;
    UINT p1,p2,p3;			// the indices into the vertex list
    UINT uv1,uv2,uv3;		// the UV axi
    UINT bmp_index;		// the UV axi
    
} OUR_3D_TRAG, *OUR_3D_TRAG_PTR;

//---------------------------------------------------
typedef struct OUR_3D_POINT_TYP
{
    FIXP16      	x,y,z;
    UINT          state_attr; 		// state information
    CLR 		color;			// color of polygon
} OUR_3D_POINT, *OUR_3D_POINT_PTR;
//---------------------------------------------------//48+12+36 =96
typedef struct 
{
    FIX_POINT3D     	pos;			//the postion of camera in the word
    FIX_POINT3D     	pos_obj;		//the postion of camera in the obj word
    FIX_POINT3D     	target;		//the camera point to the the target
    FIX_POINT3D     	up;			//the direction of the head of camera
    UINT                  width;		//half of the screem width
    UINT                  hight;  		//half of the screem hight
    UINT                  focus;  		//the focus of the camera
    FIX_MATRIX_3X3 mrot;		//the 
} OUR_3D_CAM,*OUR_3D_CAM_PTR;

//---------------------------------------------------//45*4=180
typedef struct 
{
    UINT 			state_attr;		// state information
    int		x_rot,y_rot,z_rot;	//rotation
    UINT		max_radius;		//the max radius
    FIX_MATRIX_3X3 	mrot;		//the obj word to the word
    FIX_MATRIX_3X3 	mrot_i;		//use for camera and lights
    
    UINT		material;			//
    FIX_POINT3D 	pos;				//
    FIXP16 		scale_x;			//the obj can scale
    FIXP16 		scale_x_i;		//the obj can scale
    FIXP16 		scale_y;			//the obj can scale
    FIXP16 		scale_y_i;		//the obj can scale
    FIXP16 		scale_z;			//the obj can scale
    FIXP16 		scale_z_i;		//the obj can scale
    UINT		point_num;		//how many points the obj have
    UINT		triangle_num;		//how many triagles the obj have
    FIX_POINT3D_PTR 	pPoints;		//
    FIX_POINT3D_PTR 	pPoint_nor;	//
    FIX_POINT3D_PTR 	pPoints_work;//
    OUR_3D_TRAG_PTR 	pTriangle;	//
    union
    {
        UCHAR              c[4];
        CLR			 clor;
    }CC;
    CLR*			clor;	//
    CLR*			clor_work;	//
    OUR_BMP_INFO**     bmp_info;
    UINT*			uv;	//for the fu
    UINT*			pPoints_changed;//
    UINT*			pTriangle_changed;//
    UINT				pTriangle_num_changed;//
    
}OUR_3D_OBJ,*OUR_3D_OBJ_PTR;


//---------------------------------------------------//36
typedef struct OUR_3D_LIT 
{
    struct OUR_3D_LIT* 	lit_next;	//point to the next light
    UINT 		state_attr;		// state information
    FIX_POINT3D 	pos_dir;			//the position of the point light, or the direct of the pellar light
    FIX_POINT3D 	pos_dir_obj;		//the position of the light in the obj word 
    CLR			clor[2];
    //UINT	max_radius;		//for point light,maybe not use in this vis
} OUR_3D_LIT,*OUR_3D_LIT_PTR;



//----------------------------------------------------------------------
void OUR_Build_XYZ_Rotation_MATRIX3X3(	FIXP16 theta_x, // euler angles
                                      FIXP16 theta_y, 
                                      FIXP16 theta_z,
                                      FIX_MATRIX_3X3_PTR mrot) ;// output
//time:							       
//----------------------------------------------------------------------
void OUR_POINT_CHANGE_OBJ(OUR_3D_OBJ_PTR obj,OUR_3D_CAM_PTR cam);//

//----------------------------------------------------------------------
void OUR_INIT_Triangle_Normal(	OUR_3D_OBJ_PTR obj );
//----------------------------------------------------------------------
void OUR_INIT_Point_Normal(	OUR_3D_OBJ_PTR obj );
//----------------------------------------------------------------------

void OUR_BACHFACE_OBJ_LIT16(	OUR_3D_OBJ_PTR	obj,//100*n t  需要優化
                            OUR_3D_CAM_PTR	cam,
                            OUR_3D_LIT_PTR 	lit);
//---------------------------------------------------------------------
void OUR_BACHFACE_OBJ_LIT32(	OUR_3D_OBJ_PTR	obj,//100*n t  需要優化
                            OUR_3D_CAM_PTR	cam,
                            OUR_3D_LIT_PTR 	lit);
void OUR_Build_CAM_Rotation_MATRIX3X3(OUR_3D_CAM_PTR cam);
//----------------------------------------------------------------------
//----------------------------------------------------------------------
void OUR_XYZ_Rotation_OBJ(	FIXP16 x, // 1300t
                          FIXP16 y, 
                          FIXP16 z,
                          OUR_3D_OBJ_PTR obj,
                          int obj_r_style);// output 

//--------------------------------------------------------------------
int OUR_OBJ_INIT16(	OUR_3D_OBJ_PTR 	obj,		
                   FIX_POINT3D_PTR	pos,
                   FIXP16			scale,					
                   CLR 				clor,
                   FIX_POINT3D_PTR	pPoint,	
                   UINT 			point_num,
                   OUR_3D_TRAG_PTR	pTriagle,	
                   UINT 			triagle_num,
                   UINT*				pPoints_changed,
                   UINT*				pTriangle_changed
                   );
int OUR_OBJ_INIT32(	OUR_3D_OBJ_PTR 	obj,	
                   UINT			material,
                   FIX_POINT3D_PTR	pos,
                   FIXP16			scale,		
                   UINT 			point_num,	
                   UINT 			triagle_num,			
                   FIX_POINT3D_PTR	pPoint,
                   FIX_POINT3D_PTR	pPoint_nor,
                   FIX_POINT3D_PTR	pPoint_work,
                   OUR_3D_TRAG_PTR	pTriagle,				
                   CLR 				clor,		
                   CLR* 				clor_work,
                   OUR_BMP_INFO**     	bmp_info,
                   UINT*				pPoints_changed,
                   UINT*				pTriangle_changed
                   );
int OUR_OBJ_SET_SCALE_X(	OUR_3D_OBJ_PTR 	obj,	FIXP16		scale);
int OUR_OBJ_SET_SCALE_Y(	OUR_3D_OBJ_PTR 	obj,	FIXP16		scale);
int OUR_OBJ_SET_SCALE_Z(	OUR_3D_OBJ_PTR 	obj,	FIXP16		scale);
int OUR_LIT_INIT16(OUR_3D_LIT_PTR lit,FIX_POINT3D_PTR pos_dir,CLR clr,UINT sta);
int OUR_LIT_INIT32(OUR_3D_LIT_PTR lit,FIX_POINT3D_PTR pos_dir,CLR clr,UINT sta);
int OUR_LIT_INSERT(OUR_3D_LIT_PTR *_lit_list,OUR_3D_LIT_PTR lit);
//--------------------------------------------------------------------
void OUR_3Dengin_start(void);
void OUR_3Dengin_SET_LCD_B(int w,int h);
void OUR_new_frame_start(void);
//--------------------------------------------------------------------

extern UINT OUR_D_FrameTH;
extern UINT OUR_D_point_changed_num;
extern UINT OUR_D_triangle_drawed_num;
extern int OUR_D_screem_w;
extern int OUR_D_screem_h;

//================================================================================================
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区视频在线观看| 在线观看亚洲一区| 色先锋资源久久综合| 欧美一区二区三区电影| 亚洲免费毛片网站| 九色porny丨国产精品| 欧美天堂一区二区三区| 亚洲少妇最新在线视频| 国产精品夜夜嗨| 日韩欧美不卡在线观看视频| 一区二区三区四区国产精品| 国产**成人网毛片九色| 欧美一区二区免费视频| 午夜精品影院在线观看| 一本大道久久精品懂色aⅴ| 国产三级一区二区三区| 久久精品久久精品| 91精品国产色综合久久不卡蜜臀| 日韩毛片一二三区| 成人激情午夜影院| 欧美激情一区二区在线| 激情六月婷婷综合| 欧美成人精品福利| 青青草成人在线观看| 欧美日韩午夜在线视频| 一级精品视频在线观看宜春院| 成人app软件下载大全免费| 国产丝袜在线精品| 国产精品自拍网站| 久久久国产精品不卡| 国产在线精品一区二区三区不卡| 91精品国产91综合久久蜜臀| 日本vs亚洲vs韩国一区三区二区| 欧美日本国产视频| 五月天激情综合| 欧美久久久久久久久久| 日韩激情av在线| 日韩欧美一区中文| 精品在线观看视频| 久久综合色之久久综合| 国内精品自线一区二区三区视频| 精品久久久久久最新网址| 久久9热精品视频| 久久久久久黄色| 成人亚洲一区二区一| 国产精品女人毛片| 91网站最新地址| 亚洲午夜在线电影| 91精品欧美久久久久久动漫| 免费成人在线视频观看| 久久久亚洲国产美女国产盗摄| 国产原创一区二区| 国产精品麻豆99久久久久久| 色综合色综合色综合色综合色综合| 亚洲男人天堂av网| 欧美群妇大交群的观看方式| 蜜臀精品一区二区三区在线观看| 精品久久久影院| 成人毛片老司机大片| 一区二区三区日韩精品| 欧美一区二区三区视频免费| 国产美女一区二区| 亚洲精品视频在线| 欧美一区二区在线播放| 丁香亚洲综合激情啪啪综合| 亚洲乱码国产乱码精品精98午夜| 91精品国产色综合久久ai换脸 | 91污在线观看| 日产欧产美韩系列久久99| 久久老女人爱爱| 欧美中文字幕一区二区三区| 国内精品国产成人国产三级粉色| 国产精品第13页| 91精品在线观看入口| 粉嫩欧美一区二区三区高清影视| 亚洲一二三区视频在线观看| xf在线a精品一区二区视频网站| 成人18精品视频| 麻豆精品精品国产自在97香蕉| 中文字幕乱码日本亚洲一区二区 | 极品少妇一区二区| 国产精品成人一区二区三区夜夜夜 | 在线一区二区三区| 国产一区二区三区久久久| 亚洲精品成人悠悠色影视| 精品久久久久久久久久久久久久久 | 北条麻妃一区二区三区| 日韩高清中文字幕一区| 中文字幕欧美一| 亚洲精品在线一区二区| 欧美熟乱第一页| 波多野结衣的一区二区三区| 国内精品伊人久久久久av一坑| 一区二区高清视频在线观看| 国产清纯在线一区二区www| 91精品欧美一区二区三区综合在 | 欧美午夜精品久久久久久孕妇| 国产河南妇女毛片精品久久久| 日韩黄色免费网站| 亚洲制服丝袜av| 中文字幕一区日韩精品欧美| 久久精品一区蜜桃臀影院| 制服丝袜国产精品| 欧美日韩一级片网站| 色狠狠桃花综合| 91影院在线观看| 国产91精品免费| 国产成a人亚洲| 蜜臀久久99精品久久久画质超高清 | 成人免费在线观看入口| 久久久蜜桃精品| 日韩欧美亚洲另类制服综合在线| 精品视频一区二区三区免费| 色综合久久中文字幕综合网| www.欧美色图| 99久久久无码国产精品| 成人免费va视频| 成人激情免费视频| 99热99精品| 色哟哟国产精品| 91国偷自产一区二区三区观看| 91原创在线视频| 欧美无砖专区一中文字| 欧美日韩免费一区二区三区 | 亚洲一卡二卡三卡四卡五卡| 一二三区精品视频| 午夜伦理一区二区| 美腿丝袜在线亚洲一区 | 高潮精品一区videoshd| 国产91丝袜在线18| 色综合久久久久网| 欧美日韩在线免费视频| 欧美一级免费观看| 久久久精品免费免费| 国产精品久久久久久一区二区三区| 国产精品久久久久久户外露出| 亚洲欧美日韩小说| 亚洲成人精品在线观看| 精一区二区三区| 成人蜜臀av电影| 欧美日韩免费电影| 欧美变态tickling挠脚心| 国产日韩欧美在线一区| 亚洲精品五月天| 美腿丝袜在线亚洲一区 | 久久97超碰国产精品超碰| 国产a精品视频| 欧美亚洲一区三区| 日韩欧美www| 亚洲免费在线看| 老鸭窝一区二区久久精品| 成人午夜视频网站| 91精品国产一区二区三区 | 一区二区三区中文在线观看| 午夜精品久久一牛影视| 国产美女娇喘av呻吟久久| 一本高清dvd不卡在线观看| 欧美大片日本大片免费观看| 国产精品久久久久影院| 日韩国产欧美三级| 91在线国产观看| 精品日韩在线观看| 婷婷六月综合网| 国产精品一区二区久久不卡| 色哟哟日韩精品| 国产亚洲精品超碰| 视频一区二区欧美| 91视频免费观看| 久久久久久久久99精品| 日韩中文字幕1| 91久久香蕉国产日韩欧美9色| 久久久亚洲午夜电影| 亚洲午夜在线观看视频在线| www.亚洲人| 久久久久免费观看| 免费av网站大全久久| 在线观看免费一区| ㊣最新国产の精品bt伙计久久| 麻豆精品国产传媒mv男同| 欧美体内she精高潮| 亚洲免费观看高清完整版在线观看 | av在线不卡网| 久久夜色精品一区| 日本sm残虐另类| 欧美视频第二页| 亚洲日本一区二区| 风间由美性色一区二区三区| 日韩欧美不卡在线观看视频| 午夜精品一区在线观看| 欧美性猛片xxxx免费看久爱| 亚洲私人黄色宅男| 不卡视频一二三四| 欧美国产在线观看| 国产精品资源在线看| xnxx国产精品| 国内外精品视频| 国产午夜一区二区三区| 国产在线视频一区二区三区| 欧美成人猛片aaaaaaa| 精品一区二区三区视频在线观看|