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

📄 renderbin.java

📁 JAVA3D矩陈的相关类
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
	    size = displayListResourceFreeList.size();	    for (j=0; j < size; j++) {		cv.displayListResourceFreeList.add(displayListResourceFreeList.get(j));	    }	    // Take care of display list that should be freed	    size = removeDlistPerRinfo.size();	    for (j=0; j < size; j++) {		RenderAtomListInfo ra = (RenderAtomListInfo)removeDlistPerRinfo.get(j);		cv.displayListResourceFreeList.add(new Integer(ra.renderAtom.dlistIds[ra.index]));		ra.groupType = 0;		ra.renderAtom.dlistIds[ra.index] = -1;	    }	}    }    void processMessages(long referenceTime) {	int i,j, index;	Object[] nodes;	J3dMessage messages[], m;	int component;	messages = getMessages(referenceTime);	int nMsg = getNumMessage();	if (nMsg > 0) {	    for (i=0; i < nMsg; i++) {		m = messages[i];		switch (m.type) { 		case J3dMessage.INSERT_NODES:		    insertNodes(m);		    m.decRefcount();		    break;		case J3dMessage.REMOVE_NODES:		    removeNodes(m);		    m.decRefcount();		    break;		case  J3dMessage.TRANSFORM_CHANGED:		    transformMsg = true;		    m.decRefcount();		    break;		case J3dMessage.LIGHT_CHANGED:		    // if none of the mirror lights are scoped to this view		    // ignore this message		    LightRetained[] mLts =(LightRetained[])m.args[3] ;		    for (int k = 0; k < mLts.length; k++) {			if (universe.renderingEnvironmentStructure.isLightScopedToThisView(mLts[k], view)) {			    lightMessageList.add(m);			    break;			}					    }		    break;		case J3dMessage.SWITCH_CHANGED:		    visGAIsDirty = true;		    visQuery = true;		    processSwitchChanged(m, referenceTime);		    // may need to process dirty switched-on transform		    if (universe.transformStructure.getLazyUpdate()) {			transformMsg = true;		    }		    m.decRefcount();		    break;		case J3dMessage.BACKGROUND_CHANGED:		    BackgroundRetained bg = (BackgroundRetained)m.args[0];		    if (universe.renderingEnvironmentStructure.isBgScopedToThisView(bg, view)) {			reEvaluateBg = true;                        reloadBgTexture = true;                    }		    m.decRefcount();		    break;		case J3dMessage.CLIP_CHANGED:		    ClipRetained c = (ClipRetained)m.args[0];		    if (universe.renderingEnvironmentStructure.isClipScopedToThisView(c, view))			reEvaluateClip = true;		    m.decRefcount();		    break;		case J3dMessage.TRANSPARENCYATTRIBUTES_CHANGED:		    {			NodeComponentRetained nc = (NodeComponentRetained) m.args[0];			GeometryAtom[] gaArr = (GeometryAtom[])m.args[3];			RenderAtom ra = null;			int start = -1;						// Get the first ra that is visible			for (int k = 0; (k < gaArr.length && (start < 0)); k++) {			    ra = gaArr[k].getRenderAtom(view);			    if (ra== null || !ra.inRenderBin()) {				continue;			    }			    else {				start = k;			    }			}						if (start >= 0) {			    boolean restructure = (nc.mirror.changedFrequent == 0 ||						   ra.renderMolecule.definingTransparency != nc.mirror);			    processRenderMoleculeNodeComponentChanged(m.args,								      RenderMolecule.TRANSPARENCY_DIRTY, 								      start, restructure);			}			m.decRefcount();			break;		    }		case J3dMessage.POLYGONATTRIBUTES_CHANGED:		    {			NodeComponentRetained nc = (NodeComponentRetained) m.args[0];			GeometryAtom[] gaArr = (GeometryAtom[])m.args[3];			RenderAtom ra = null;			int start = -1;						// Get the first ra that is visible			// Get the first ra that is visible			for (int k = 0; (k < gaArr.length && (start < 0)); k++) {			    ra = gaArr[k].getRenderAtom(view);			    if (ra== null || !ra.inRenderBin()) {				continue;			    }			    else {				start = k;			    }			}						if (start >= 0) {			    boolean restructure = (nc.mirror.changedFrequent == 0 ||						   ra.renderMolecule.definingPolygonAttributes != nc.mirror);			    processRenderMoleculeNodeComponentChanged(m.args,								      RenderMolecule.POLYGONATTRS_DIRTY, 								      start, restructure);			}			m.decRefcount();			break;		    }		case J3dMessage.LINEATTRIBUTES_CHANGED:		    {			NodeComponentRetained nc = (NodeComponentRetained) m.args[0];			GeometryAtom[] gaArr = (GeometryAtom[])m.args[3];			RenderAtom ra = null;			int start = -1;						// Get the first ra that is visible			// Get the first ra that is visible			for (int k = 0; (k < gaArr.length && (start < 0)); k++) {			    ra = gaArr[k].getRenderAtom(view);			    if (ra== null || !ra.inRenderBin()) {				continue;			    }			    else {				start = k;			    }			}						if (start >= 0) {			    boolean restructure = (nc.mirror.changedFrequent == 0 ||						   ra.renderMolecule.definingLineAttributes != nc.mirror);			    processRenderMoleculeNodeComponentChanged(m.args,								      RenderMolecule.LINEATTRS_DIRTY, 								      start, restructure);			}			m.decRefcount();			break;		    }		case J3dMessage.POINTATTRIBUTES_CHANGED:		    {			NodeComponentRetained nc = (NodeComponentRetained) m.args[0];			GeometryAtom[] gaArr = (GeometryAtom[])m.args[3];			RenderAtom ra = null;			int start = -1;			// Get the first ra that is visible			// Get the first ra that is visible			for (int k = 0; (k < gaArr.length && (start < 0)); k++) {			    ra = gaArr[k].getRenderAtom(view);			    if (ra== null || !ra.inRenderBin()) {				continue;			    }			    else {				start = k;			    }			}						if (start >= 0) {			    boolean restructure = (nc.mirror.changedFrequent == 0 ||						   ra.renderMolecule.definingPointAttributes != nc.mirror);			    			    processRenderMoleculeNodeComponentChanged(m.args,								      RenderMolecule.POINTATTRS_DIRTY,								      start, restructure);			}			m.decRefcount();			break;		    }		case J3dMessage.MATERIAL_CHANGED:		    {			NodeComponentRetained nc = (NodeComponentRetained) m.args[0];			GeometryAtom[] gaArr = (GeometryAtom[])m.args[3];			RenderAtom ra = null;			int start = -1;						// Get the first ra that is visible			// Get the first ra that is visible			for (int k = 0; (k < gaArr.length && (start < 0)); k++) {			    ra = gaArr[k].getRenderAtom(view);			    if (ra== null || !ra.inRenderBin()) {				continue;			    }			    else {				start = k;			    }			}						if (start >= 0) {			    boolean restructure = (nc.mirror.changedFrequent == 0 ||						   ra.renderMolecule.definingMaterial != nc.mirror);			    processRenderMoleculeNodeComponentChanged(m.args,								      RenderMolecule.MATERIAL_DIRTY, 								      start, restructure);			}			m.decRefcount();			break;		    }		case J3dMessage.COLORINGATTRIBUTES_CHANGED:		    {			NodeComponentRetained nc = (NodeComponentRetained) m.args[0];			GeometryAtom[] gaArr = (GeometryAtom[])m.args[3];			RenderAtom ra = null;			int start = -1;						// Get the first ra that is visible			// Get the first ra that is visible			for (int k = 0; (k < gaArr.length && (start < 0)); k++) {			    ra = gaArr[k].getRenderAtom(view);			    if (ra== null || !ra.inRenderBin()) {				continue;			    }			    else {				start = k;			    }			}						if (start >= 0) {			    boolean restructure = (nc.mirror.changedFrequent == 0 ||						   ra.renderMolecule.definingColoringAttributes != nc.mirror);			    processRenderMoleculeNodeComponentChanged(m.args,								      RenderMolecule.COLORINGATTRS_DIRTY, 								      start, restructure);			}			m.decRefcount();			break;		    }		case J3dMessage.TEXTUREATTRIBUTES_CHANGED: 		    processTextureAttributesChanged(						    (NodeComponentRetained) m.args[0],						    (GeometryAtom[])m.args[3]);		    m.decRefcount();		    break;		case J3dMessage.IMAGE_COMPONENT_CHANGED: 		    addDirtyNodeComponent((NodeComponentRetained)m.args[0]);		    m.decRefcount();		    break;		case J3dMessage.TEXTURE_UNIT_STATE_CHANGED: 		    processTextureUnitStateChanged(						   (NodeComponentRetained) m.args[0],						   (GeometryAtom[])m.args[3]);		    m.decRefcount();		    break;		case J3dMessage.TEXCOORDGENERATION_CHANGED: 		    processTexCoordGenerationChanged( (NodeComponentRetained) m.args[0],						      (GeometryAtom[])m.args[3]);		    m.decRefcount();		    break;		case J3dMessage.TEXTURE_CHANGED: 		    // Texture is always in a sole user position		    processTextureChanged((NodeComponentRetained) m.args[0],					  (GeometryAtom[])m.args[3],					  m.args);		    		    m.decRefcount();		    break;       		case J3dMessage.SHADER_APPEARANCE_CHANGED:     		case J3dMessage.SHADER_ATTRIBUTE_SET_CHANGED:     		case J3dMessage.SHADER_ATTRIBUTE_CHANGED:	    		    processShaderComponentChanged(m.args);		    m.decRefcount();		    break;		case J3dMessage.RENDERINGATTRIBUTES_CHANGED:		    processAttributeBinNodeComponentChanged(m.args);		    component = ((Integer)m.args[1]).intValue();		    if (component == RenderingAttributesRetained.VISIBLE) {			visGAIsDirty = true;			visQuery = true;		    }		    m.decRefcount();		    break;		case J3dMessage.APPEARANCE_CHANGED:		    processAppearanceChanged(m.args);		    m.decRefcount();		    break;		case J3dMessage.FOG_CHANGED:		    FogRetained mfog =  ((FogRetained)m.args[0]).mirrorFog;		    if (universe.renderingEnvironmentStructure.isFogScopedToThisView(mfog, view)) {			processFogChanged(m.args);		    }		    m.decRefcount();		    break;		case J3dMessage.ALTERNATEAPPEARANCE_CHANGED:		    AlternateAppearanceRetained maltapp =  ((AlternateAppearanceRetained)m.args[0]).mirrorAltApp;		    if (universe.renderingEnvironmentStructure.isAltAppScopedToThisView(maltapp, view)) {			altAppearanceDirty = true;		    }		    m.decRefcount();		    break;		case J3dMessage.MODELCLIP_CHANGED:		    ModelClipRetained mc= ((ModelClipRetained)m.args[0]).mirrorModelClip;		    if (universe.renderingEnvironmentStructure.isMclipScopedToThisView(mc, view)) {			processModelClipChanged(m.args);		    }		    m.decRefcount();		    break;		case J3dMessage.BOUNDINGLEAF_CHANGED:		    processBoundingLeafChanged(m.args,					       referenceTime);		    m.decRefcount();		    break;		case J3dMessage.SHAPE3D_CHANGED:		    processShapeChanged(m.args, referenceTime);		    m.decRefcount();		    break;		case J3dMessage.ORIENTEDSHAPE3D_CHANGED:		    processOrientedShape3DChanged((Object[])m.args[0]);		    m.decRefcount();		    break;		case J3dMessage.MORPH_CHANGED:		    processMorphChanged(m.args, referenceTime);		    component = ((Integer)m.args[1]).intValue();		    if ((component & MorphRetained.GEOMETRY_CHANGED) == 0) {			visGAIsDirty = true;			visQuery = true;		    }				    m.decRefcount();		    break;		case J3dMessage.UPDATE_VIEW:		    {			View v = (View)m.args[0];			ViewPlatform vp = v.getViewPlatform();			int comp = ((Integer)(m.args[2])).intValue();			int value = ((Integer)(m.args[3])).intValue();			if (comp == View.TRANSP_SORT_POLICY_CHANGED) {			    if (value != transpSortMode) {				reEvaluateSortMode = true;				cachedTranspSortMode = value;			    }			} else if (vp != null) {			    if (value != transpSortMode) {				reEvaluateSortMode = true;				cachedTranspSortMode = value;			    }			    updateViewPlatform((ViewPlatformRetained)vp.retained, 					       ((Float)m.args[1]).floatValue());			    visQuery = true;			    // XXXX : Handle view.visibilityPolicy changed.			    if(((View.VISIBILITY_POLICY_DIRTY != 0) &&				(View.VISIBILITY_DRAW_ALL != view.viewCache.visibilityPolicy)) ||			       locale != ((ViewPlatformRetained) (vp.retained)).locale) {								for (int n = (renderAtoms.size() - 1); n>=0 ; n--) {				    removeARenderAtom((RenderAtom) renderAtoms.get(n));				}				renderAtoms.clear();				visGAIsDirty = true;			    				if (locale != ((ViewPlatformRetained) (vp.retained)).locale) {				    locale = ((ViewPlatformRetained) (vp.retained)).locale;				    localeChanged = true;				}			    }			}			m.decRefcount();		    }		    break;		case J3dMessage.UPDATE_VIEWPLATFORM:		    updateViewPlatform((ViewPlatformRetained) m.args[0],				       ((Float)m.args[1]).floatValue());		    m.decRefcount();		    break;		case J3dMessage.TEXT3D_DATA_CHANGED:		    processDataChanged((Object[])m.args[0], 				       (Object[])m.args[1],				       referenceTime);		    m.decRefcount();		    break;		case J3dMessage.GEOMETRY_CHANGED:		    processGeometryChanged(m.args);		    visGAIsDirty = true;		    visQuery = true;		    m.decRefcount();		    break;		    		case J3dMessage.BOUNDS_AUTO_COMPUTE_CHANGED:		case J3dMessage.REGION_BOUND_CHANGED:		    processGeometryAtomsChanged((Object[])m.args[0]);		    visGAIsDirty = true;		    visQuery = true;		    m.decRefcount();		    break;		case J3dMessage.TEXT3D_TRANSFORM_CHANGED:		    processText3DTransformChanged((Object[])m.args[0],						  (Object[])m.args[1],						  referenceTime);		    visQuery = true;		    m.decRefcount();		    break;		case J3dMessage.ORDERED_GROUP_INSERTED:		    processOrderedGroupInserted(m);		    // Do not do decRefcount() here. We'll do it in updateObject().		    ogCIOList.add(m);		    break;		case J3dMessage.ORDERED_GROUP_REMOVED:		    processOrderedGroupRemoved(m);		    // Do not do decRefcount() here. We'll do it in updateObject().		    ogCIOList.add(m);                    		    break;		case J3dMessage.ORDERED_GROUP_TABLE_CHANGED:		    // Do not do decRefcount() here. We'll do it in updateObject().		    ogCIOList.add(m);		    break;		case J3dMessage.RENDER_OFFSCREEN:		    offScreenMessage.add(m);		    break;		case J3dMessage.VIEWSPECIFICGROUP_CHANGED:		    processViewSpecificGroupChanged(m);		    visQuery = true;		    m.decRefcount();		    break;		default:		    m.decRefcount();		}	    }	    

⌨️ 快捷键说明

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