示例#1
0
        protected override void loadCompact(aBinaryReader reader)
        {
            base.loadCompact(reader);

            var finder = bloResourceFinder.getFinder();

            mTextureCount = 1;
            mTextures[0]  = finder.find <bloTexture>(reader, "timg");
            mPalette      = finder.find <bloPalette>(reader, "tlut");

            mBinding = (bloBinding)reader.Read8();

            int bits = reader.Read8();

            mMirror   = (bloMirror)((bits >> 0) & 3);
            mRotate90 = ((bits & 4) != 0);
            mWrapS    = (bloWrapMode)((bits >> 3) & 3);
            mWrapT    = mWrapS;

            reader.Skip(4);

            for (int i = 0; i < 4; ++i)
            {
                mColors[i] = new bloColor(bloColor.cWhite);
            }

            setBlendKonstColor();
            setBlendKonstAlpha();
        }
示例#2
0
 public bloPicture(uint name, bloRectangle rectangle, bloTexture texture, bloPalette palette)
 {
     if (texture == null)
     {
         throw new ArgumentNullException("texture");
     }
     mName         = name;
     mRect         = rectangle;
     mTextures[0]  = texture;
     mTextureCount = 1;
     texture.attachPalette(palette);
 }
示例#3
0
 public void attachPalette(bloPalette palette)
 {
     if (palette != null || mBasePalette == null)
     {
         mAttachedPalette = palette;
     }
     else
     {
         mAttachedPalette = mBasePalette;
     }
     mAttachedPalette.attachPalette(mPaletteData, mImageData);
     if (mLoadedGL)
     {
         loadGL();
     }
 }
示例#4
0
        protected override void loadXml(xElement element)
        {
            base.loadXml(element);

            var finder = bloResourceFinder.getFinder();

            mTextureCount = 1;
            mTextures[0]  = finder.find <bloTexture>(element.Element("texture"), "timg");
            mPalette      = finder.find <bloPalette>(element.Element("palette"), "tlut");

            if (!Enum.TryParse <bloBinding>(element.Element("binding"), true, out mBinding))
            {
                mBinding = (bloBinding.Left | bloBinding.Top | bloBinding.Right | bloBinding.Bottom);
            }

            if (!Enum.TryParse <bloMirror>(element.Element("mirror"), true, out mMirror))
            {
                mMirror = 0;
            }

            mRotate90 = (element.Element("rotate-90") | false);

            if (!Enum.TryParse <bloWrapMode>(element.Element("wrap-s"), true, out mWrapS))
            {
                mWrapS = bloWrapMode.None;
            }

            if (!Enum.TryParse <bloWrapMode>(element.Element("wrap-t"), true, out mWrapT))
            {
                mWrapT = bloWrapMode.None;
            }

            bloXml.loadGradient(element.Element("gradient"), out mFromColor, out mToColor);

            var white  = new bloColor(bloColor.cWhite);
            var colors = element.Element("colors");

            mColors[(int)bloTextureBase.TopLeft]     = bloXml.loadColor(colors.Element("top-left"), white);
            mColors[(int)bloTextureBase.TopRight]    = bloXml.loadColor(colors.Element("top-right"), white);
            mColors[(int)bloTextureBase.BottomLeft]  = bloXml.loadColor(colors.Element("bottom-left"), white);
            mColors[(int)bloTextureBase.BottomRight] = bloXml.loadColor(colors.Element("bottom-right"), white);

            setBlendKonstColor();
            setBlendKonstAlpha();
        }
示例#5
0
        protected override void loadCompact(aBinaryReader reader)
        {
            base.loadCompact(reader);

            var finder = bloResourceFinder.getFinder();

            int x      = reader.Read16();
            int y      = reader.Read16();
            int width  = reader.Read16();
            int height = reader.Read16();

            mContentRect.set(x, y, (x + width), (y + height));

            for (int i = 0; i < 4; ++i)
            {
                mTextures[i].texture = finder.find <bloTexture>(reader, "timg");
            }
            mPalette = finder.find <bloPalette>(reader, "tlut");

            int bits = reader.Read8();

            for (int i = 0; i < 4; ++i)
            {
                mTextures[i].mirror = (bloMirror)((bits >> (6 - (i * 2))) & 3);
            }

            for (int i = 0; i < 4; ++i)
            {
                mTextures[i].color = new bloColor(reader.Read32());
            }

            mContentTexture = null;
            mFromColor.rgba = bloColor.cZero;
            mToColor.rgba   = bloColor.cOne;

            reader.Skip(4);
            initializeMinSize();
        }
示例#6
0
        protected override void loadXml(xElement element)
        {
            base.loadXml(element);

            var finder = bloResourceFinder.getFinder();

            var content = element.Element("content");

            mContentRect    = bloXml.loadRectangle(content.Element("rectangle"));
            mContentTexture = finder.find <bloTexture>(content.Element("texture"), "timg");

            mPalette = finder.find <bloPalette>(element.Element("palette"), "tlut");

            var corners = element.Element("corners");

            loadCornerXml(mTextures[cTopLeft], finder, corners.Element("top-left"), 0);
            loadCornerXml(mTextures[cTopRight], finder, corners.Element("top-right"), bloMirror.X);
            loadCornerXml(mTextures[cBottomLeft], finder, corners.Element("bottom-left"), bloMirror.Y);
            loadCornerXml(mTextures[cBottomRight], finder, corners.Element("bottom-right"), (bloMirror.X | bloMirror.Y));

            bloXml.loadGradient(element.Element("gradient"), out mFromColor, out mToColor);

            initializeMinSize();
        }
示例#7
0
 public bloWindow(uint name, bloRectangle rectangle, bloTexture topLeft, bloTexture topRight, bloTexture bottomLeft, bloTexture bottomRight, bloPalette palette)
 {
     mName    = name;
     mPalette = palette;
     initialize(topLeft, topRight, bottomLeft, bottomRight, 0, rectangle);
 }
示例#8
0
 public bloWindow(uint name, bloRectangle rectangle, bloTexture texture, bloTextureBase tbase, bloPalette palette)
 {
     mName    = name;
     mPalette = palette;
     initialize(texture, texture, texture, texture, bloEnum.convertMirror(tbase), rectangle);
 }
示例#9
0
        protected override void loadBlo1(aBinaryReader reader)
        {
            base.loadBlo1(reader);

            var finder = bloResourceFinder.getFinder();

            int numparams = reader.Read8();

            mTextureCount = 1;
            mTextures[0]  = finder.find <bloTexture>(reader, "timg");
            mPalette      = finder.find <bloPalette>(reader, "tlut");
            mBinding      = (bloBinding)reader.Read8();

            numparams -= 3;

            if (numparams > 0)
            {
                int bits = reader.Read8();
                mMirror   = (bloMirror)(bits & 3);
                mRotate90 = ((bits & 4) != 0);
                --numparams;
            }
            else
            {
                mMirror   = 0;
                mRotate90 = false;
            }

            if (numparams > 0)
            {
                int bits = reader.Read8();
                mWrapS = (bloWrapMode)((bits >> 2) & 3);
                mWrapT = (bloWrapMode)((bits >> 0) & 3);
                --numparams;
            }
            else
            {
                mWrapS = bloWrapMode.None;
                mWrapT = bloWrapMode.None;
            }

            if (numparams > 0)
            {
                mFromColor = new bloColor(reader.Read32());
                --numparams;
            }
            else
            {
                mFromColor = new bloColor(bloColor.cZero);
            }

            if (numparams > 0)
            {
                mToColor = new bloColor(reader.Read32());
                --numparams;
            }
            else
            {
                mToColor = new bloColor(bloColor.cOne);
            }

            for (int i = 0; i < 4; ++i)
            {
                if (numparams > 0)
                {
                    mColors[i] = new bloColor(reader.Read32());
                    --numparams;
                }
                else
                {
                    mColors[i] = new bloColor(bloColor.cWhite);
                }
            }

            reader.Skip(4);

            setBlendKonstColor();
            setBlendKonstAlpha();
        }
示例#10
0
 protected void loadPaletteData(aBinaryReader reader, int entrycount, long tlutoffset)
 {
     reader.Goto(tlutoffset);
     mBasePalette = new bloPalette(mTlutFormat, mTransparency, entrycount, reader);
     attachPalette(mBasePalette);
 }