Esempio n. 1
0
    //called by Futile
    public static void Init()
    {
        Quad = CreateFacetType("Quad", 10, 10, 60, CreateQuadLayer);
        Triangle = CreateFacetType("Triangle", 16, 16, 64,CreateTriLayer);

        defaultFacetType = Quad;
    }
Esempio n. 2
0
    public static void Init()     //called by Futile
    {
        Quad     = CreateFacetType("Quad", 10, 10, 60, CreateQuadLayer);
        Triangle = CreateFacetType("Triangle", 16, 16, 64, CreateTriLayer);

        defaultFacetType = Quad;
    }
Esempio n. 3
0
    protected void Init(FFacetType facetType, FAtlasElement element, int numberOfFacetsNeeded)
    {
        _element = element;

        base.Init(facetType,_element.atlas,numberOfFacetsNeeded);

        HandleElementChanged();
    }
Esempio n. 4
0
    protected void Init(FFacetType facetType, FAtlasElement element, int numberOfFacetsNeeded)
    {
        _element = element;

        base.Init(facetType, _element.atlas, numberOfFacetsNeeded);

        HandleElementChanged();
    }
Esempio n. 5
0
    public FMeshData(params FMeshFacet[] inFacets)
    {
        facets = new List<FMeshFacet>(inFacets);

        if(facets.Count != 0)
        {
            facetType = facets[0].facetType;
        }
    }
Esempio n. 6
0
    public FMeshData(List<FMeshFacet> inFacets)
    {
        facets = inFacets;

        if(facets.Count != 0)
        {
            facetType = facets[0].facetType;
        }
    }
Esempio n. 7
0
    public FMeshData(List <FMeshFacet> inFacets)
    {
        facets = inFacets;

        if (facets.Count != 0)
        {
            facetType = facets[0].facetType;
        }
    }
Esempio n. 8
0
    public FMeshData(params FMeshFacet[] inFacets)
    {
        facets = new List <FMeshFacet>(inFacets);

        if (facets.Count != 0)
        {
            facetType = facets[0].facetType;
        }
    }
Esempio n. 9
0
    public void Init(FutileParams futileParams)
    {
        enabled       = true;
        _futileParams = futileParams;

        Application.targetFrameRate = _futileParams.targetFrameRate;

        FShader.Init();         //set up the basic shaders
        FFacetType.Init();      //set up the types of facets (Quads, Triangles, etc)

        screen = new FScreen(_futileParams);

        //
        //Camera setup from https://github.com/prime31/UIToolkit/blob/master/Assets/Plugins/UIToolkit/UI.cs
        //

        if (existingCamera != null)
        {
            _cameraHolder = existingCamera.gameObject;
            _camera       = existingCamera;
        }
        else
        {
            _cameraHolder = new GameObject();
            _camera       = _cameraHolder.AddComponent <Camera>();
        }

        _cameraHolder.transform.parent = gameObject.transform;

        _camera.tag             = "MainCamera";
        _camera.clearFlags      = CameraClearFlags.SolidColor;
        _camera.nearClipPlane   = 0.0f;
        _camera.farClipPlane    = 500.0f;
        _camera.depth           = 100;
        _camera.rect            = new Rect(0.0f, 0.0f, 1.0f, 1.0f);
        _camera.backgroundColor = _futileParams.backgroundColor;

        //we multiply this stuff by scaleInverse to make sure everything is in points, not pixels
        _camera.orthographic     = true;
        _camera.orthographicSize = screen.pixelHeight / 2 * displayScaleInverse;

        UpdateCameraPosition();

        touchManager = new FTouchManager();

        atlasManager = new FAtlasManager();

        CreateDefaultAtlases();


        _stages = new List <FStage>();

        stage = new FStage("Futile.stage");

        AddStage(stage);
    }
Esempio n. 10
0
	virtual protected void Init(FFacetType facetType, FAtlas atlas, int numberOfFacetsNeeded)
	{
		_facetType = facetType;
		
		_atlas = atlas;
		if(_shader == null) _shader = FShader.defaultShader;
		_numberOfFacetsNeeded = numberOfFacetsNeeded; 
		
		_hasInited = true;
	}
Esempio n. 11
0
    //create your own FFacetTypes by creating them here
    public static FFacetType CreateFacetType(string facetTypeShortName, int initialAmount, int expansionAmount, int maxEmptyAmount, CreateRenderLayerDelegate createRenderLayer)
    {
        for(int s = 0; s<_facetTypes.Count; s++)
        {
            if(_facetTypes[s].name == facetTypeShortName) return _facetTypes[s]; //don't add it if we have it already
        }

        FFacetType newFacetType = new FFacetType(facetTypeShortName, _nextFacetTypeIndex++, initialAmount, expansionAmount, maxEmptyAmount, createRenderLayer);
        _facetTypes.Add (newFacetType);

        return newFacetType;
    }
Esempio n. 12
0
    virtual protected void Init(FFacetType facetType, FAtlas atlas, int numberOfFacetsNeeded)
    {
        _facetType = facetType;

        _atlas = atlas;
        if (_shader == null)
        {
            _shader = FShader.defaultShader;
        }
        _numberOfFacetsNeeded = numberOfFacetsNeeded;

        _hasInited = true;
    }
Esempio n. 13
0
    protected void Init(FFacetType facetType, FAtlasElement element, int numberOfFacetsNeeded)
    {
        _facetType = facetType;

        _element = element;
        if (_shader == null)
        {
            _shader = FShader.defaultShader;
        }
        _numberOfFacetsNeeded = numberOfFacetsNeeded;

        HandleElementChanged();
    }
Esempio n. 14
0
    public void Init(FutileParams futileParams)
    {
        enabled       = true;
        _futileParams = futileParams;

        //设置游戏帧率
        Application.targetFrameRate = _futileParams.targetFrameRate;
        //设置basic shaders
        FShader.Init();
        //设置facets' types (Quads, Triangles, etc)
        FFacetType.Init();

        //初始化各引擎组件实例
        screen = new FScreen(_futileParams);

        touchManager = new FTouchManager();

        atlasManager = new FAtlasManager();

        //设置主相机参数:Setup from https://github.com/prime31/UIToolkit/blob/master/Assets/Plugins/UIToolkit/UI.cs

        _cameraHolder = new GameObject();
        _cameraHolder.transform.parent = gameObject.transform;

        _camera      = _cameraHolder.AddComponent <Camera>();
        _camera.tag  = "MainCamera";
        _camera.name = "Camera";
        //_camera.clearFlags = CameraClearFlags.Depth; //TODO: check if this is faster or not?
        _camera.clearFlags      = CameraClearFlags.SolidColor;
        _camera.nearClipPlane   = 0.0f;
        _camera.farClipPlane    = 500.0f;
        _camera.depth           = 100;
        _camera.rect            = new Rect(0.0f, 0.0f, 1.0f, 1.0f);
        _camera.backgroundColor = _futileParams.backgroundColor;

        //we multiply this stuff by scaleInverse to make sure everything is in points, not pixels
        _camera.orthographic     = true;
        _camera.orthographicSize = screen.pixelHeight / 2 * displayScaleInverse;

        UpdateCameraPosition();

        //创建默认Atlas
        CreateDefaultAtlases();

        //初始化Stage管理
        _stages = new List <FStage>();

        stage = new FStage("Futile.stage");

        AddStage(stage);
    }
    public FFacetRenderLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
    {
        this.stage = stage;

        this.facetType = facetType;
        this.atlas     = atlas;
        this.shader    = shader;

        _expansionAmount = facetType.expansionAmount;
        _maxEmptyFacets  = facetType.maxEmptyAmount;

        this.batchIndex = facetType.index * 10000000 + atlas.index * 10000;

        _gameObject = new GameObject("FRenderLayer (" + stage.name + ") (" + facetType.name + ")");
        _transform  = _gameObject.transform;

        _transform.parent = Futile.instance.gameObject.transform;

        _meshFilter   = _gameObject.AddComponent <MeshFilter>();
        _meshRenderer = _gameObject.AddComponent <MeshRenderer>();
        // warning CS0618: `UnityEngine.Renderer.castShadows' is obsolete: `Property castShadows has been deprecated. Use shadowCastingMode instead.'
        // UNITY5 UPDATE: http://docs.unity3d.com/ScriptReference/MeshRenderer.html
        // http://docs.unity3d.com/ScriptReference/Renderer-shadowCastingMode.html
        // http://docs.unity3d.com/ScriptReference/Rendering.ShadowCastingMode.html
        //_meshRenderer.castShadows = false;
        _meshRenderer.shadowCastingMode    = UnityEngine.Rendering.ShadowCastingMode.Off;
        _meshRenderer.receiveShadows       = false;
        _meshRenderer.useLightProbes       = false;
        _meshRenderer.reflectionProbeUsage = UnityEngine.Rendering.ReflectionProbeUsage.Off;

        _mesh = _meshFilter.mesh;

        //we could possibly create a pool of materials so they can be reused,
        //but that would create issues when unloading textures, so it's probably not worth it
        _material             = new Material(shader.shader);
        _material.mainTexture = atlas.texture;

        _meshRenderer.GetComponent <Renderer>().sharedMaterial = _material;

                #if UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5
        _gameObject.active = false;
                #else
        _gameObject.SetActive(false);
        _mesh.MarkDynamic();
                #endif

        ExpandMaxFacetLimit(facetType.initialAmount);

        UpdateTransform();
    }
Esempio n. 16
0
    //create your own FFacetTypes by creating them here
    public static FFacetType CreateFacetType(string facetTypeShortName, int initialAmount, int expansionAmount, int maxEmptyAmount, CreateRenderLayerDelegate createRenderLayer)
    {
        for (int s = 0; s < _facetTypes.Count; s++)
        {
            if (_facetTypes[s].name == facetTypeShortName)
            {
                return(_facetTypes[s]);                                                      //don't add it if we have it already
            }
        }

        FFacetType newFacetType = new FFacetType(facetTypeShortName, _nextFacetTypeIndex++, initialAmount, expansionAmount, maxEmptyAmount, createRenderLayer);

        _facetTypes.Add(newFacetType);

        return(newFacetType);
    }
Esempio n. 17
0
    public FMeshFacet AddFacet(FMeshFacet facet)
    {
        if(facets == null)
        {
            facets = new List<FMeshFacet>();
            facetType = facet.facetType;
        }

        if(facetType != facet.facetType) //check if the facet type is different from what we already have
        {
            Debug.LogError("You can't mix facet types in FMeshData!");
        }

        facets.Add(facet);

        return facet;
    }
Esempio n. 18
0
    public FFacetRenderLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
    {
        _stage = stage;

        _facetType = facetType;
        _atlas     = atlas;
        _shader    = shader;

        _expansionAmount = _facetType.expansionAmount;
        _maxEmptyFacets  = _facetType.maxEmptyAmount;

        batchIndex = _facetType.index * 10000000 + atlas.index * 10000 + shader.index;

        _gameObject = new GameObject("FRenderLayer (" + _stage.name + ") (" + _facetType.name + ")");

        //Esteban.
        _gameObject.layer = 11;
        _stage.layer      = 11;

        _transform = _gameObject.transform;

        _transform.parent = Futile.instance.gameObject.transform;

        _meshFilter                  = _gameObject.AddComponent <MeshFilter>();
        _meshRenderer                = _gameObject.AddComponent <MeshRenderer>();
        _meshRenderer.castShadows    = false;
        _meshRenderer.receiveShadows = false;

        _mesh = _meshFilter.mesh;

        _material             = new Material(_shader.shader);
        _material.mainTexture = _atlas.texture;

        _meshRenderer.renderer.material = _material;

                #if UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5
        _gameObject.active = false;
                #else
        _gameObject.SetActive(false);
        _mesh.MarkDynamic();
                #endif

        ExpandMaxFacetLimit(_facetType.initialAmount);

        UpdateTransform();
    }
Esempio n. 19
0
    public FMeshFacet AddFacet(FMeshFacet facet)
    {
        if (facets == null)
        {
            facets    = new List <FMeshFacet>();
            facetType = facet.facetType;
        }

        if (facetType != facet.facetType)        //check if the facet type is different from what we already have
        {
            Debug.LogError("You can't mix facet types in FMeshData!");
        }

        facets.Add(facet);

        return(facet);
    }
Esempio n. 20
0
    protected FRenderLayer CreateRenderLayer(FFacetType facetType, int batchIndex, FAtlas atlas, FShader shader)
    {
        //first, check and see if we already have a layer that matches the batchIndex
        int previousLiveLayerCount = _previousLiveLayers.Count;

        for (int p = 0; p < previousLiveLayerCount; ++p)
        {
            FRenderLayer previousLiveLayer = _previousLiveLayers[p];
            if (previousLiveLayer.batchIndex == batchIndex)
            {
                _previousLiveLayers.RemoveAt(p);
                _liveLayers.Add(previousLiveLayer);
                previousLiveLayer.depth = _depthToUse++;
                return(previousLiveLayer);
            }
        }

        //now see if we have a cached (old, now unused layer) that matches the batchIndex
        int cachedLayerCount = _cachedLayers.Count;

        for (int c = 0; c < cachedLayerCount; ++c)
        {
            FRenderLayer cachedLayer = _cachedLayers[c];
            if (cachedLayer.batchIndex == batchIndex)
            {
                _cachedLayers.RemoveAt(c);
                cachedLayer.AddToWorld();
                _liveLayers.Add(cachedLayer);
                cachedLayer.depth = _depthToUse++;
                return(cachedLayer);
            }
        }

        //still no layer found? create a new one!

        FRenderLayer newLayer = facetType.createRenderLayer(_stage, facetType, atlas, shader);

        _liveLayers.Add(newLayer);
        _allLayers.Add(newLayer);
        newLayer.AddToWorld();
        newLayer.depth = _depthToUse++;

        return(newLayer);
    }
Esempio n. 21
0
    public FFacetRenderLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
    {
        _stage = stage;

        _facetType = facetType;
        _atlas     = atlas;
        _shader    = shader;

        _expansionAmount = _facetType.expansionAmount;
        _maxEmptyFacets  = _facetType.maxEmptyAmount;

        batchIndex = _facetType.index * 10000000 + atlas.index * 10000 + shader.index;

        _gameObject = new GameObject("FRenderLayer (" + _stage.name + ") (" + _facetType.name + ")");
        _transform  = _gameObject.transform;

        _transform.parent = Futile.instance.gameObject.transform;

        _meshFilter                  = _gameObject.AddComponent <MeshFilter>();
        _meshRenderer                = _gameObject.AddComponent <MeshRenderer>();
        _meshRenderer.castShadows    = false;
        _meshRenderer.receiveShadows = false;

        _mesh = _meshFilter.mesh;

        //we could possibly create a pool of materials so they can be reused,
        //but that would create issues when unloading textures, so it's probably not worth it
        _material             = new Material(_shader.shader);
        _material.mainTexture = _atlas.texture;

        _meshRenderer.GetComponent <Renderer>().sharedMaterial = _material;

                #if UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5
        _gameObject.active = false;
                #else
        _gameObject.SetActive(false);
        _mesh.MarkDynamic();
                #endif

        ExpandMaxFacetLimit(_facetType.initialAmount);

        UpdateTransform();
    }
Esempio n. 22
0
    public FFacetRenderLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
    {
        this.stage = stage;

        this.facetType = facetType;
        this.atlas = atlas;
        this.shader = shader;

        _expansionAmount = facetType.expansionAmount;
        _maxEmptyFacets = facetType.maxEmptyAmount;

        this.batchIndex = facetType.index*10000000 + atlas.index*10000;

        _gameObject = new GameObject("FRenderLayer ("+stage.name+") ("+facetType.name+")");
        _transform = _gameObject.transform;

        _transform.parent = Futile.instance.gameObject.transform;

        _meshFilter = _gameObject.AddComponent<MeshFilter>();
        _meshRenderer = _gameObject.AddComponent<MeshRenderer>();
        _meshRenderer.castShadows = false;
        _meshRenderer.receiveShadows = false;

        _mesh = _meshFilter.mesh;

        //we could possibly create a pool of materials so they can be reused,
        //but that would create issues when unloading textures, so it's probably not worth it
        _material = new Material(shader.shader);
        _material.mainTexture = atlas.texture;

        _meshRenderer.GetComponent<Renderer>().sharedMaterial = _material;

        #if UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5
            _gameObject.active = false;
        #else
            _gameObject.SetActive(false);
            _mesh.MarkDynamic();
        #endif

        ExpandMaxFacetLimit(facetType.initialAmount);

        UpdateTransform();
    }
Esempio n. 23
0
    public FFacetRenderLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
    {
        this.stage = stage;

        this.facetType = facetType;
        this.atlas = atlas;
        this.shader = shader;

        _expansionAmount = facetType.expansionAmount;
        _maxEmptyFacets = facetType.maxEmptyAmount;

        this.batchIndex = facetType.index*10000000 + atlas.index*10000;

        _gameObject = new GameObject("FRenderLayer ("+stage.name+") ("+facetType.name+")");
        _transform = _gameObject.transform;

        _transform.parent = Futile.instance.gameObject.transform;

        _meshFilter = _gameObject.AddComponent<MeshFilter>();
        _meshRenderer = _gameObject.AddComponent<MeshRenderer>();
        _meshRenderer.castShadows = false;
        _meshRenderer.receiveShadows = false;

        _mesh = _meshFilter.mesh;

        _material = new Material(shader.shader);
        _material.mainTexture = atlas.texture;

        _meshRenderer.renderer.sharedMaterial = _material;
        //_meshRenderer.renderer.material = _material;

        #if UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5
            _gameObject.active = false;
        #else
            _gameObject.SetActive(false);
            _mesh.MarkDynamic();
        #endif

        ExpandMaxFacetLimit(facetType.initialAmount);

        UpdateTransform();
    }
    public FFacetRenderLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
    {
        _stage = stage;

        _facetType = facetType;
        _atlas = atlas;
        _shader = shader;

        _expansionAmount = _facetType.expansionAmount;
        _maxEmptyFacets = _facetType.maxEmptyAmount;

        batchIndex = _facetType.index*10000000 + atlas.index*10000 + shader.index;

        _gameObject = new GameObject("FRenderLayer ("+_stage.name+") ("+_facetType.name+")");
        _transform = _gameObject.transform;

        _transform.parent = Futile.instance.gameObject.transform;

        _meshFilter = _gameObject.AddComponent<MeshFilter>();
        _meshRenderer = _gameObject.AddComponent<MeshRenderer>();
        //_meshRenderer.castShadows = false;
        _meshRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
        _meshRenderer.receiveShadows = false;

        _mesh = _meshFilter.mesh;

        _material = new Material(_shader.shader);
        _material.mainTexture = _atlas.texture;

        _meshRenderer.GetComponent<Renderer>().material = _material;

        #if UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5
            _gameObject.active = false;
        #else
            _gameObject.SetActive(false);
            _mesh.MarkDynamic();
        #endif

        ExpandMaxFacetLimit(_facetType.initialAmount);

        UpdateTransform();
    }
Esempio n. 25
0
	protected FFacetRenderLayer CreateFacetRenderLayer(FFacetType facetType, int batchIndex, FAtlas atlas, FShader shader)
	{
		//first, check and see if we already have a layer that matches the batchIndex
		int previousLiveLayerCount = _previousLiveLayers.Count;
		for(int p = 0; p<previousLiveLayerCount; ++p)
		{
			FFacetRenderLayer previousLiveLayer = _previousLiveLayers[p];
			if(previousLiveLayer.batchIndex == batchIndex)
			{
				_previousLiveLayers.RemoveAt(p);
				_liveLayers.Add (previousLiveLayer);
				_allRenderables.Add(previousLiveLayer);
				return previousLiveLayer;
			}
		}
		
		//now see if we have a cached (old, now unused layer) that matches the batchIndex
		int cachedLayerCount = _cachedLayers.Count;
		for(int c = 0; c<cachedLayerCount; ++c)
		{
			FFacetRenderLayer cachedLayer = _cachedLayers[c];
			if(cachedLayer.batchIndex == batchIndex)
			{
				_cachedLayers.RemoveAt(c);
				cachedLayer.AddToWorld();
				_liveLayers.Add (cachedLayer);
				_allRenderables.Add(cachedLayer);
				return cachedLayer;
			}
		}
		
		//still no layer found? create a new one!
		
		FFacetRenderLayer newLayer = facetType.createRenderLayer(_stage, facetType,atlas,shader);
		_liveLayers.Add(newLayer);
		_allLayers.Add(newLayer);
		_allRenderables.Add(newLayer);
		newLayer.AddToWorld();
		
		return newLayer;
	}
Esempio n. 26
0
    public void GetFacetRenderLayer(out FFacetRenderLayer renderLayer, out int firstFacetIndex, FFacetType facetType, FAtlas atlas, FShader shader, int numberOfFacetsNeeded)
    {
        int batchIndex = facetType.index*10000000 + atlas.index*10000 + shader.index;

        if(_topLayer == null)
        {
            _topLayer = CreateFacetRenderLayer(facetType, batchIndex, atlas, shader);
            _topLayer.Open();
        }
        else
        {
            if(_topLayer.batchIndex != batchIndex) //we're changing layers!
            {
                _topLayer.Close(); //close the old layer

                _topLayer = CreateFacetRenderLayer(facetType, batchIndex, atlas, shader);
                _topLayer.Open(); //open the new layer
            }
        }

        renderLayer = _topLayer;
        firstFacetIndex = _topLayer.GetNextFacetIndex(numberOfFacetsNeeded);
    }
Esempio n. 27
0
    public FRenderLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
    {
        _stage = stage;

        _facetType = facetType;
        _atlas = atlas;
        _shader = shader;

        _expansionAmount = _facetType.expansionAmount;
        _maxEmptyFacets = _facetType.maxEmptyAmount;

        batchIndex = _facetType.index*10000000 + atlas.index*10000 + shader.index;

        _gameObject = new GameObject("FRenderLayer ("+_stage.name+") ("+_facetType.name+")");
        _transform = _gameObject.transform;

        _transform.parent = Futile.instance.gameObject.transform;

        _meshFilter = _gameObject.AddComponent<MeshFilter>();
        _meshRenderer = _gameObject.AddComponent<MeshRenderer>();
        _meshRenderer.castShadows = false;
        _meshRenderer.receiveShadows = false;

        _mesh = _meshFilter.mesh;

        _material = new Material(_shader.shader);
        _material.mainTexture = _atlas.texture;

        _meshRenderer.renderer.material = _material;

        _gameObject.active = false;

        ExpandMaxFacetLimit(_facetType.initialAmount);

        UpdateTransform();
    }
Esempio n. 28
0
 public FRenderQuadLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
     : base(stage,facetType,atlas,shader)
 {
 }
Esempio n. 29
0
 static private FFacetRenderLayer CreateQuadLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
 {
     return(new FQuadRenderLayer(stage, facetType, atlas, shader));
 }
Esempio n. 30
0
 public FTriangleRenderLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
     : base(stage,facetType,atlas,shader)
 {
 }
Esempio n. 31
0
 public FMeshNode(FFacetType facetType, string elementName) : this(new FMeshData(facetType), Futile.atlasManager.GetElementWithName(elementName))
 {
 }
Esempio n. 32
0
 static private FFacetRenderLayer CreateTriLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
 {
     return(new FTriangleRenderLayer(stage, facetType, atlas, shader));
 }
Esempio n. 33
0
 public FMeshData(FFacetType facetType)
 {
     this.facets    = new List <FMeshFacet>();
     this.facetType = facetType;
 }
Esempio n. 34
0
 public FMeshNode(FFacetType facetType, FAtlasElement element) : this(new FMeshData(facetType), element)
 {
 }
Esempio n. 35
0
 public FRenderQuadLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)  : base(stage, facetType, atlas, shader)
 {
 }
Esempio n. 36
0
    protected void Init(FFacetType facetType, FAtlasElement element, int numberOfFacetsNeeded)
    {
        _facetType = facetType;

        _element = element;
        if(_shader == null) _shader = FShader.defaultShader;
        _numberOfFacetsNeeded = numberOfFacetsNeeded;

        HandleElementChanged();
    }
Esempio n. 37
0
 public FTriangleRenderLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)  : base(stage, facetType, atlas, shader)
 {
 }
Esempio n. 38
0
    //获取Facet渲染层级
    public void GetFacetRenderLayer(out FFacetRenderLayer renderLayer, out int firstFacetIndex, FFacetType facetType, FAtlas atlas, FShader shader, int numberOfFacetsNeeded)
    {
        int batchIndex = facetType.index * 10000000 + atlas.index * 10000 + shader.index;

        if (_topLayer == null)
        {
            _topLayer = CreateFacetRenderLayer(facetType, batchIndex, atlas, shader);
            _topLayer.Open();
        }
        else
        {
            if (_topLayer.batchIndex != batchIndex) //we're changing layers!
            {
                _topLayer.Close();                  //close the old layer

                _topLayer = CreateFacetRenderLayer(facetType, batchIndex, atlas, shader);
                _topLayer.Open(); //open the new layer
            }
        }

        renderLayer     = _topLayer;
        firstFacetIndex = _topLayer.GetNextFacetIndex(numberOfFacetsNeeded);
    }
Esempio n. 39
0
 public FMeshData(FFacetType facetType)
 {
     this.facets = new List<FMeshFacet>();
     this.facetType = facetType;
 }
Esempio n. 40
0
 private static FRenderLayer CreateTriLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
 {
     return new FRenderTriangleLayer(stage,facetType,atlas,shader);
 }
Esempio n. 41
0
	static private FFacetRenderLayer CreateQuadLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
	{
		return new FQuadRenderLayer(stage,facetType,atlas,shader);
	}
Esempio n. 42
0
	public FMeshNode (FFacetType facetType, string elementName) : this(new FMeshData(facetType), Futile.atlasManager.GetElementWithName(elementName))
	{
	}
Esempio n. 43
0
	public FMeshNode (FFacetType facetType, FAtlasElement element) : this(new FMeshData(facetType), element)
	{
	}