public BaseBitmap(BitmapTextureInterleavedInteropResource definition, int index, Bitmap.Image image) { if (index == 0) { var def = definition.Texture.Definition.Bitmap1; Height = def.Height; Width = def.Width; Depth = def.Depth; MipMapCount = def.MipmapCount - 1; Type = def.BitmapType; Flags = image.Flags; UpdateFormat(image.Format); } else { var def = definition.Texture.Definition.Bitmap2; Height = def.Height; Width = def.Width; Depth = def.Depth; MipMapCount = def.MipmapCount - 1; Type = def.BitmapType; Flags = image.Flags; UpdateFormat(image.Format); } MipMapOffset = image.MipMapOffset; Curve = image.Curve; }
public BaseBitmap(BitmapTextureInterleavedInteropResource definition, int index, Bitmap.Image image) { var def = definition.Texture.Definition; if (index == 0) { Height = def.Height1; Width = def.Width1; Depth = def.Depth1; MipMapCount = def.MipmapCount1 - 1; Type = def.Type1; Flags = image.Flags; UpdateFormat(image.Format); } else { Height = def.Height2; Width = def.Width2; Depth = def.Depth2; MipMapCount = def.MipmapCount2 - 1; Type = def.Type2; Flags = image.Flags; UpdateFormat(image.Format); } }
public XboxBitmap(BitmapTextureInterleavedInteropResource definition, int index, Bitmap.Image image) : base(definition, index, image) { UpdateFormat(image.Format); MultipleOfBlockDimension = Width % BlockDimension == 0 && Height % BlockDimension == 0; NotExact = Width != VirtualWidth || Height != VirtualHeight; InTile = Width <= MinimalBitmapSize / 2 && Height <= MinimalBitmapSize / 2; Offset = 0; }
public static BaseBitmap ConvertGen3Bitmap(GameCache cache, Bitmap bitmap, int imageIndex, bool forDDS = false) { var image = bitmap.Images[imageIndex]; if (image.XboxFlags.HasFlag(BitmapFlagsXbox.UseInterleavedTextures)) { BitmapTextureInterleavedInteropResource resource = cache.ResourceCache.GetBitmapTextureInterleavedInteropResource(bitmap.InterleavedResources[image.InterleavedTextureIndex1]); if (resource == null) { return(null); } BitmapTextureInteropDefinition definition; BitmapTextureInteropDefinition otherDefinition; int pairIndex = 0; if (image.InterleavedTextureIndex2 > 0) { definition = resource.Texture.Definition.Bitmap2; otherDefinition = resource.Texture.Definition.Bitmap1; pairIndex = 1; } else { definition = resource.Texture.Definition.Bitmap1; otherDefinition = resource.Texture.Definition.Bitmap2; } return(ConvertGen3Bitmap(resource.Texture.Definition.PrimaryResourceData.Data, resource.Texture.Definition.SecondaryResourceData.Data, definition, bitmap, imageIndex, true, pairIndex, otherDefinition, forDDS)); } else { BitmapTextureInteropResource resource = cache.ResourceCache.GetBitmapTextureInteropResource(bitmap.Resources[imageIndex]); if (resource == null) { return(null); } return(ConvertGen3Bitmap(resource.Texture.Definition.PrimaryResourceData.Data, resource.Texture.Definition.SecondaryResourceData.Data, resource.Texture.Definition.Bitmap, bitmap, imageIndex, false, 0, null, forDDS)); } }
public abstract TagResourceReference CreateBitmapInterleavedResource(BitmapTextureInterleavedInteropResource bitmapResourceDefinition);
public override TagResourceReference CreateBitmapInterleavedResource(BitmapTextureInterleavedInteropResource bitmapResourceDefinition) { throw new NotImplementedException(); }
public override TagResourceReference CreateBitmapInterleavedResource(BitmapTextureInterleavedInteropResource bitmapResourceDefinition) { return(CreateResource(bitmapResourceDefinition, ResourceLocation.Textures, TagResourceTypeGen3.BitmapInterleaved)); }