// =========================================================== // Methods for/from SuperClass/Interfaces // =========================================================== // =========================================================== // Methods // =========================================================== public TextureSourceWithLocation AddTextureSource(ITextureSource pTextureSource, int pTexturePositionX, int pTexturePositionY) /* throws IllegalArgumentException */ { this.CheckTextureSourcePosition(pTextureSource, pTexturePositionX, pTexturePositionY); TextureSourceWithLocation textureSourceWithLocation = new TextureSourceWithLocation(pTextureSource, pTexturePositionX, pTexturePositionY); this.mTextureSources.Add(textureSourceWithLocation); this.mUpdateOnHardwareNeeded = true; return(textureSourceWithLocation); }
public void RemoveTextureSource(ITextureSource pTextureSource, int pTexturePositionX, int pTexturePositionY) { //final ArrayList<TextureSourceWithLocation> textureSources = this.mTextureSources; List <TextureSourceWithLocation> textureSources = this.mTextureSources; for (int i = textureSources.Count - 1; i >= 0; i--) { TextureSourceWithLocation textureSourceWithLocation = textureSources[i]; if (textureSourceWithLocation.mTextureSource == pTextureSource && textureSourceWithLocation.mTexturePositionX == pTexturePositionX && textureSourceWithLocation.mTexturePositionY == pTexturePositionY) { textureSources.RemoveAt(i); this.mUpdateOnHardwareNeeded = true; return; } } }
private void WriteTextureToHardware(GL10 pGL) { bool preMultipyAlpha = this.mTextureOptions.mPreMultipyAlpha; //final ArrayList<TextureSourceWithLocation> textureSources = this.mTextureSources; List <TextureSourceWithLocation> textureSources = this.mTextureSources; int textureSourceCount = textureSources.Count; for (int j = 0; j < textureSourceCount; j++) { TextureSourceWithLocation textureSourceWithLocation = textureSources[j]; if (textureSourceWithLocation != null) { Bitmap bmp = textureSourceWithLocation.OnLoadBitmap(); try { if (bmp == null) { throw new IllegalArgumentException("TextureSource: " + textureSourceWithLocation.ToString() + " returned a null Bitmap."); } if (preMultipyAlpha) { GLUtils.TexSubImage2D(GL10Consts.GlTexture2d, 0, textureSourceWithLocation.GetTexturePositionX(), textureSourceWithLocation.GetTexturePositionY(), bmp, GL10Consts.GlRgba, GL10Consts.GlUnsignedByte); } else { GLHelper.GlTexSubImage2D(pGL, GL10Consts.GlTexture2d, 0, textureSourceWithLocation.GetTexturePositionX(), textureSourceWithLocation.GetTexturePositionY(), bmp, GL10Consts.GlRgba, GL10Consts.GlUnsignedByte); } bmp.Recycle(); } catch (IllegalArgumentException iae) { // TODO Load some static checkerboard or so to visualize that loading the texture has failed. Debug.E("Error loading: " + textureSourceWithLocation.ToString(), iae); if (this.mTextureStateListener != null) { this.mTextureStateListener.OnTextureSourceLoadExeption(this, textureSourceWithLocation.mTextureSource, iae); } else { throw iae; } } } } }
// =========================================================== // Methods for/from SuperClass/Interfaces // =========================================================== // =========================================================== // Methods // =========================================================== public TextureSourceWithLocation AddTextureSource(ITextureSource pTextureSource, int pTexturePositionX, int pTexturePositionY) /* throws IllegalArgumentException */ { this.CheckTextureSourcePosition(pTextureSource, pTexturePositionX, pTexturePositionY); TextureSourceWithLocation textureSourceWithLocation = new TextureSourceWithLocation(pTextureSource, pTexturePositionX, pTexturePositionY); this.mTextureSources.Add(textureSourceWithLocation); this.mUpdateOnHardwareNeeded = true; return textureSourceWithLocation; }