📄 our_main.c
字号:
/**************************************************************************
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
***************************************************************************/
#include "our_math.h"
#include "our_3d.h"
#include "our_draw16.h"
#include "our_draw32.h"
#include "math.h"
#include "our_main.h"
//----------------------------------
//----------------------------------
#define SCALE 1<<(SCALE_1)
OUR_GLOBAL global;
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
//==============================================
int Game_Init(void)
{
FIX_POINT3D lit_position={0,-0,-0};
FIX_POINT3D obj_position={500,0,0};
//=============================================
OUR_3Dengin_start(); //do at the first
//=============================================
//init the camera
global.cam_work.pos.MM.x=8000;
global.cam_work.pos.MM.y=8000;
global.cam_work.pos.MM.z=-8000;
global.cam_work.target.MM.x=0;
global.cam_work.target.MM.y=0;
global.cam_work.target.MM.z=0;
global.cam_work.width=LCD_W/2;
global.cam_work.hight=LCD_H/2;
global.cam_work.focus=800 *LCD_W/800;
//=============================================
//=============================================
//init the obj,just fill the pointers of the unit part
OUR_OBJ_INIT32(&global.obj_cube, //要初始化的obj的指针
MATERIAL_Triangle, //obj的材质是什么,后详
&obj_position, //obj的初始位置
SCALE, //obj的比例,后详
8, //obj有多少个点
12, //obj有多少个三角形
global.point_org1, //obj有多少个三角形
global.point_nor1, //obj有多少个三角形
global.point_work1, //obj有多少个三角形
global.triangle_work1,
OUR_RGB32(0,255,255,0),
global.clr_work1,
NULL,
global.point_do1,
global.Triangle_do1
);
//=============================================
OUR_creat_cube_mofang(&global.obj_cube,3000);
OUR_INIT_Triangle_Normal(&global.obj_cube);
//=============================================
#define LIT_C 150
OUR_LIT_INIT32( &global.lit_con,
&lit_position,
OUR_RGB32(0,LIT_C,LIT_C,LIT_C),
LIT_parallel
);
OUR_LIT_INSERT(&global.lit_list,&global.lit_con);
//--------
return(1);
} // end Game_Init
//================================================================
int Game_Main(UCHAR *video_buffer, int lpitch, int FPS)
{
//QueryPerformanceCounter(&lpPerformanceCount1);
int i=13,j=0,temp;
static int x=00,y=00,z=00;
static int cx=0;
char work_string[256]; // temp string
FIX_MATRIX_3X3 mrot_obj,mrot1,mrot_obj_i;
static int a[5];
OUR_3D_POINT n;
//-----------------------------
OUR_new_frame_start();
//-----------------------------
OUR_Build_CAM_Rotation_MATRIX3X3(&global.cam_work);//1550t
//x++;
y-=1;
//z+=1;
//=================================================================================================
//=================================================================================================
OUR_XYZ_Rotation_OBJ(x, y, z,&global.obj_cube);
OUR_BACHFACE_OBJ_LIT32(&global.obj_cube,&global.cam_work,global.lit_list);
OUR_POINT_CHANGE_OBJ(&global.obj_cube,&global.cam_work);
OUR_Draw_OBJ( &global.obj_cube, video_buffer, LCD_W,CLOR_MOD);
//=================================================================================================
//=================================================================================================
return(global.FrameTH);
} // end Game_Main
//////////////////////////////////////////////////////////
UCHAR video_buffer[600*800];//*
#if 1
int main(void)
{
int lpitch=800;
int FPS;
Game_Init();
while(1)
{
for(FPS=0;FPS<300;FPS+=5)
{
Game_Main(video_buffer,lpitch,FPS);
}
FPS++;
Game_Init();
}
}
#endif
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -