⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 render3d_nodes.h

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 H
字号:
/* *			GPAC - Multimedia Framework C SDK * *			Copyright (c) Jean Le Feuvre 2000-2005 *					All rights reserved * *  This file is part of GPAC / 3D rendering module * *  GPAC is free software; you can redistribute it and/or modify *  it under the terms of the GNU Lesser General Public License as published by *  the Free Software Foundation; either version 2, or (at your option) *  any later version. *    *  GPAC is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU Lesser General Public License for more details. *    *  You should have received a copy of the GNU Lesser General Public *  License along with this library; see the file COPYING.  If not, write to *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  * */#ifndef RENDER3D_NODES_H#define RENDER3D_NODES_H#include "visual_surface.h"/*unregister bindable from all bindable stacks listed, and bind their top if needed*/void PreDestroyBindable(GF_Node *bindable, GF_List *stack_list);/*returns isBound*/Bool Bindable_GetIsBound(GF_Node *bindable);/*sets isBound*/void Bindable_SetIsBound(GF_Node *bindable, Bool val);/*generic on_set_bind for all bindables*/void Bindable_OnSetBind(GF_Node *bindable, GF_List *stack_list);/*remove all bindable references to this stack and destroy chain*/void BindableStackDelete(GF_List *stack);/*for user-modif of viewport/viewpoint*/void Bindable_SetSetBind(GF_Node *bindable, Bool val);/*exported stacks for bindable*//*viewpoint/viewport/navigation/fog stack*/typedef struct{	GF_Node *owner;	GF_Renderer *compositor;	/*keep track of viewport stacks using us*/	GF_List *reg_stacks;	Bool prev_was_bound;	/*world transform*/	GF_Matrix world_view_mx;} ViewStack;typedef struct{	GF_Node *owner;	GF_Renderer *compositor;	/*for image background*/	GF_TextureHandler txh;	/*keep track of background stacks using us*/	GF_List *reg_stacks;	GF_Mesh *mesh;	GF_BBox prev_bounds;} Background2DStack;void R3D_InitBackground2D(Render3D *sr, GF_Node *node);void R3D_Background2DModified(GF_Node *node);typedef struct{	GF_Node *owner;	GF_Renderer *compositor;	/*keep track of background stacks using us*/	GF_List *reg_stacks;	GF_Mesh *sky_mesh, *ground_mesh;	MFFloat sky_col, ground_col;	MFFloat sky_ang, ground_ang;	GF_Mesh *front_mesh, *back_mesh, *top_mesh, *bottom_mesh, *left_mesh, *right_mesh;	GF_TextureHandler txh_front, txh_back, txh_top, txh_bottom, txh_left, txh_right;} BackgroundStack;void R3D_InitBackground(Render3D *sr, GF_Node *node);void R3D_BackgroundModified(GF_Node *node);void R3D_InitAnchor(Render3D *sr, GF_Node *node);SensorHandler *r3d_anchor_get_handler(GF_Node *n);void R3D_InitBillboard(Render3D *sr, GF_Node *node);void R3D_InitBitmap(Render3D *sr, GF_Node *node);void R3D_InitBox(Render3D *sr, GF_Node *node);void R3D_InitCircle(Render3D *sr, GF_Node *node);void R3D_InitCollision(Render3D *sr, GF_Node *node);void R3D_InitColorTransform(Render3D *sr, GF_Node *node);void R3D_InitCompositeTexture2D(Render3D *sr, GF_Node *node);void R3D_InitCompositeTexture3D(Render3D *sr, GF_Node *node);GF_TextureHandler *r3d_composite_get_texture(GF_Node *node);/*returns true if appearance has a composite texture*/Bool r3d_has_composite_texture(GF_Node *appear);/*handle event when hit object has a composite texture*/Bool r3d_handle_composite_event(Render3D *sr, GF_Event *ev);/*updates scaling if composite texture has been rescaled for HW support (need for bitamp)*/void R3D_CompositeAdjustScale(GF_Node *node, Fixed *sx, Fixed *sy);void R3D_InitCone(Render3D *sr, GF_Node *node);void R3D_InitCurve2D(Render3D *sr, GF_Node *node);void R3D_InitCylinder(Render3D *sr, GF_Node *node);SensorHandler *r3d_cs_get_handler(GF_Node *n);void R3D_InitCylinderSensor(Render3D *sr, GF_Node *node);void R3D_InitDirectionalLight(Render3D *sr, GF_Node *node);void R3D_InitDiscSensor(Render3D *sr, GF_Node *node);SensorHandler *r3d_ds_get_handler(GF_Node *n);void R3D_InitElevationGrid(Render3D *sr, GF_Node *node);void R3D_InitEllipse(Render3D *sr, GF_Node *node);void R3D_InitExtrusion(Render3D *sr, GF_Node *node);void R3D_InitFog(Render3D *sr, GF_Node *node);void R3D_InitForm(Render3D *sr, GF_Node *node);void R3D_InitGroup(Render3D *sr, GF_Node *node);void R3D_InitIFS2D(Render3D *sr, GF_Node *node);void R3D_InitILS2D(Render3D *sr, GF_Node *node);void R3D_InitIFS(Render3D *sr, GF_Node *node);void R3D_InitILS(Render3D *sr, GF_Node *node);void R3D_InitLinearGradient(Render3D *sr, GF_Node *node);GF_TextureHandler *r3d_lg_get_texture(GF_Node *node);void R3D_InitLayer2D(Render3D *sr, GF_Node *node);void R3D_InitLayer3D(Render3D *sr, GF_Node *node);/*returns associated camera*/GF_Camera *l3d_get_camera(GF_Node *node);/*(un)bind layer navinfo stack top - if no top overrides navigation_mode*/void l3d_bind_camera(GF_Node *node, Bool do_bind, u32 nav_value);void R3D_InitLayout(Render3D *sr, GF_Node *node);void R3D_LayoutModified(GF_Node *node);void R3D_InitLOD(Render3D *sr, GF_Node *node);void R3D_InitNavigationInfo(Render3D *sr, GF_Node *node);void R3D_InitOrderedGroup(Render3D *sr, GF_Node *node);void R3D_InitPathLayout(Render3D *sr, GF_Node *node);void R3D_InitPlaneSensor2D(Render3D *sr, GF_Node *node);SensorHandler *r3d_ps2D_get_handler(GF_Node *n);void R3D_InitPlaneSensor(Render3D *sr, GF_Node *node);SensorHandler *r3d_ps_get_handler(GF_Node *n);void R3D_InitPointLight(Render3D *sr, GF_Node *node);void R3D_InitPointSet2D(Render3D *sr, GF_Node *node);void R3D_InitPointSet(Render3D *sr, GF_Node *node);void R3D_InitProximitySensor2D(Render3D *sr, GF_Node *node);SensorHandler *r3d_prox2D_get_handler(GF_Node *n);void R3D_InitProximitySensor(Render3D *sr, GF_Node *node);void R3D_InitRadialGradient(Render3D *sr, GF_Node *node);GF_TextureHandler *r3d_rg_get_texture(GF_Node *node);void R3D_InitRectangle(Render3D *sr, GF_Node *node);void R3D_InitShape(Render3D *sr, GF_Node *node);void R3D_InitSound2D(Render3D *sr, GF_Node *node);void R3D_InitSound(Render3D *sr, GF_Node *node);void R3D_InitSphere(Render3D *sr, GF_Node *node);void R3D_InitSphereSensor(Render3D *sr, GF_Node *node);SensorHandler *r3d_sphere_get_handler(GF_Node *n);void R3D_InitSpotLight(Render3D *sr, GF_Node *node);void R3D_InitSwitch(Render3D *sr, GF_Node *node);void R3D_InitText(Render3D *sr, GF_Node *node);void Text_Extrude(GF_Node *node, RenderEffect3D *eff, GF_Mesh *mesh, MFVec3f *thespine, Fixed creaseAngle, Bool begin_cap, Bool end_cap, MFRotation *spine_ori, MFVec2f *spine_scale, Bool txAlongSpine);;void R3D_InitTouchSensor(Render3D *sr, GF_Node *node);SensorHandler *r3d_touch_sensor_get_handler(GF_Node *n);void R3D_InitTransform2D(Render3D *sr, GF_Node *node);void R3D_InitTransformMatrix2D(Render3D *sr, GF_Node *node);void TM2D_GetMatrix(GF_Node *n, GF_Matrix *mx);void R3D_InitTransform(Render3D *sr, GF_Node *node);void R3D_InitVisibilitySensor(Render3D *sr, GF_Node *node);void R3D_InitViewport(Render3D *sr, GF_Node *node);void R3D_InitViewpoint(Render3D *sr, GF_Node *node);void R3D_InitNonLinearDeformer(Render3D *sr, GF_Node *node);typedef struct{	GF_TextureHandler txh;} MatteTextureStack;void R3D_InitMatteTexture(Render3D *sr, GF_Node *node);/*for lineproperties/XLineProperties*/typedef struct{	Render3D *sr;	u32 last_mod_time;} LinePropStack;void R3D_InitLineProps(Render3D *sr, GF_Node *node);u32 R3D_LP_GetLastUpdateTime(GF_Node *node);/*hardcoded proto loader (cf hardcoded_protos.c)*/void R3D_InitHardcodedProto(Render3D *sr, GF_Node *node);/*X3D nodes*/void R3D_InitDisk2D(Render3D *sr, GF_Node *node);void R3D_InitArc2D(Render3D *sr, GF_Node *node);void R3D_InitPolyline2D(Render3D *sr, GF_Node *node);void R3D_InitPolypoint2D(Render3D *sr, GF_Node *node);void R3D_InitStaticGroup(Render3D *sr, GF_Node *node);void R3D_InitLineSet(Render3D *sr, GF_Node *node);void R3D_InitTriangleSet2D(Render3D *sr, GF_Node *node);void R3D_InitIndexedTriangleFanSet(Render3D *sr, GF_Node *node);void R3D_InitIndexedTriangleSet(Render3D *sr, GF_Node *node);void R3D_InitIndexedTriangleStripSet(Render3D *sr, GF_Node *node);void R3D_InitTriangleFanSet(Render3D *sr, GF_Node *node);void R3D_InitTriangleSet(Render3D *sr, GF_Node *node);void R3D_InitTriangleStripSet(Render3D *sr, GF_Node *node);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -