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(); }
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); }
public void attachPalette(bloPalette palette) { if (palette != null || mBasePalette == null) { mAttachedPalette = palette; } else { mAttachedPalette = mBasePalette; } mAttachedPalette.attachPalette(mPaletteData, mImageData); if (mLoadedGL) { loadGL(); } }
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(); }
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(); }
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(); }
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); }
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); }
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(); }
protected void loadPaletteData(aBinaryReader reader, int entrycount, long tlutoffset) { reader.Goto(tlutoffset); mBasePalette = new bloPalette(mTlutFormat, mTransparency, entrycount, reader); attachPalette(mBasePalette); }