示例#1
0
        //------------------------------------------
        //called to create the mask form the texture
        public unsafe bool applyMask(BTerrainQuadNode node, int x, int z, bool alternate)
        {
            UInt32 *MskPtr = mStroke.getBits();

            mMskImgWidth  = (uint)mStroke.cBufferSize;
            mMskImgHeight = (uint)mStroke.cBufferSize;
            bool changed = Texturing_LayerEditor.setMaskAlphaToTextureBlending(node, BTerrainTexturing.getAlphaTextureWidth(), BTerrainTexturing.getAlphaTextureWidth(),
                                                                               MskPtr, mMskImgWidth, mMskImgHeight, mStroke.mAlphaValue,
                                                                               x, z, alternate);

            mStroke.unlockBits();

            return(changed);
        }
示例#2
0
        //------------------------------------------
        //called to apply a texutre directly to a masked area
        public unsafe bool applyToMask(BTerrainQuadNode node)
        {
            bool changed = false;



            BTerrainQuadNodeDesc desc = node.getDesc();

            changed = Texturing_LayerEditor.setIndexToMaskedArea(node, desc.mMinXVert, desc.mMinZVert, desc.mMaxXVert, desc.mMaxZVert,
                                                                 (char)mTexArrayIndex);


            if (changed)
            {
                //node.getTextureData().free();
                for (int i = 0; i < Terrain.BTerrainTexturing.cMaxNumLevels; i++)
                {
                    node.getTextureData(i).free();
                }
            }

            return(changed);
        }
示例#3
0
        //------------------------------------------
        //called to apply the texture to the terrain
        public unsafe bool applyToDstLayer(BTerrainQuadNode node, int terrainGridX, int terrainGridZ, bool selectionMode, bool alternate)
        {
            UInt32 *MskPtr = mStroke.getBits();

            mMskImgWidth  = (uint)mStroke.cBufferSize;
            mMskImgHeight = (uint)mStroke.cBufferSize;

            bool changed = Texturing_LayerEditor.setMaskAlphaToLayer(node, MskPtr, mMskImgWidth, mMskImgHeight, mStroke.mAlphaValue, terrainGridX, terrainGridZ, (char)mTexArrayIndex);


            mStroke.unlockBits();

            if (changed)
            {
                //node.getTextureData().free();
                for (int i = 0; i < Terrain.BTerrainTexturing.cMaxNumLevels; i++)
                {
                    node.getTextureData(i).free();
                }
            }

            return(true);
        }