Skip to content

Commit

Permalink
Code cleanup for #1705
Browse files Browse the repository at this point in the history
  • Loading branch information
Gama11 committed Jan 22, 2016
1 parent 8d548b2 commit cc2c458
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 102 deletions.
22 changes: 12 additions & 10 deletions flixel/FlxCamera.hx
@@ -1,7 +1,5 @@
package flixel;

using flixel.util.FlxColorTransformUtil;

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Graphics;
Expand All @@ -26,6 +24,7 @@ import openfl.display.BlendMode;
import openfl.filters.BitmapFilter;
import openfl.geom.Matrix;
import openfl.Vector;
using flixel.util.FlxColorTransformUtil;

/**
* The camera class is used to display the game's visuals.
Expand Down Expand Up @@ -361,7 +360,8 @@ class FlxCamera extends FlxBasic

#if !FLX_RENDER_TRIANGLE
@:noCompletion
public function startQuadBatch(graphic:FlxGraphic, colored:Bool, hasColorOffsets:Bool = false, ?blend:BlendMode = null, smooth:Bool = false):FlxDrawTilesItem
public function startQuadBatch(graphic:FlxGraphic, colored:Bool, hasColorOffsets:Bool = false,
?blend:BlendMode, smooth:Bool = false):FlxDrawTilesItem
{
var itemToReturn:FlxDrawTilesItem = null;
var blendInt:Int = FlxDrawBaseItem.blendToInt(blend);
Expand Down Expand Up @@ -413,14 +413,16 @@ class FlxCamera extends FlxBasic
}
#else
@:noCompletion
public function startQuadBatch(graphic:FlxGraphic, colored:Bool, blend:BlendMode = null, smooth:Bool = false, hasColorOffsets:Bool = false):FlxDrawTrianglesItem
public function startQuadBatch(graphic:FlxGraphic, colored:Bool, ?blend:BlendMode,
smooth:Bool = false, hasColorOffsets:Bool = false):FlxDrawTrianglesItem
{
return startTrianglesBatch(graphic, smooth, colored, blend);
}
#end

@:noCompletion
public function startTrianglesBatch(graphic:FlxGraphic, smoothing:Bool = false, isColored:Bool = false, blend:BlendMode = null):FlxDrawTrianglesItem
public function startTrianglesBatch(graphic:FlxGraphic, smoothing:Bool = false,
isColored:Bool = false, ?blend:BlendMode):FlxDrawTrianglesItem
{
var itemToReturn:FlxDrawTrianglesItem = null;
var blendInt:Int = FlxDrawBaseItem.blendToInt(blend);
Expand All @@ -438,7 +440,8 @@ class FlxCamera extends FlxBasic
}

@:noCompletion
public function getNewDrawTrianglesItem(graphic:FlxGraphic, smoothing:Bool = false, isColored:Bool = false, blend:BlendMode = null):FlxDrawTrianglesItem
public function getNewDrawTrianglesItem(graphic:FlxGraphic, smoothing:Bool = false,
isColored:Bool = false, ?blend:BlendMode):FlxDrawTrianglesItem
{
var itemToReturn:FlxDrawTrianglesItem = null;
var blendInt:Int = FlxDrawBaseItem.blendToInt(blend);
Expand Down Expand Up @@ -523,7 +526,7 @@ class FlxCamera extends FlxBasic
}

public function drawPixels(?frame:FlxFrame, ?pixels:BitmapData, matrix:FlxMatrix,
?transform:ColorTransform, ?blend:BlendMode = null, ?smoothing:Bool = false):Void
?transform:ColorTransform, ?blend:BlendMode, ?smoothing:Bool = false):Void
{
if (FlxG.renderBlit)
{
Expand All @@ -532,7 +535,6 @@ class FlxCamera extends FlxBasic
else
{
var isColored = (transform != null && transform.hasRGBMultipliers());

var hasColorOffsets:Bool = (transform != null && transform.hasRGBAOffsets());

#if !FLX_RENDER_TRIANGLE
Expand All @@ -544,8 +546,8 @@ class FlxCamera extends FlxBasic
}
}

public function copyPixels(?frame:FlxFrame, ?pixels:BitmapData, ?sourceRect:Rectangle, destPoint:Point,
?transform:ColorTransform, ?blend:BlendMode = null, ?smoothing:Bool = false):Void
public function copyPixels(?frame:FlxFrame, ?pixels:BitmapData, ?sourceRect:Rectangle,
destPoint:Point, ?transform:ColorTransform, ?blend:BlendMode, ?smoothing:Bool = false):Void
{
if (FlxG.renderBlit)
{
Expand Down
5 changes: 2 additions & 3 deletions flixel/FlxSprite.hx
@@ -1,7 +1,5 @@
package flixel;

using flixel.util.FlxColorTransformUtil;

import flash.display.BitmapData;
import flash.display.BlendMode;
import flash.geom.ColorTransform;
Expand All @@ -23,6 +21,7 @@ import flixel.system.FlxAssets.FlxGraphicAsset;
import flixel.util.FlxBitmapDataUtil;
import flixel.util.FlxColor;
import flixel.util.FlxDestroyUtil;
using flixel.util.FlxColorTransformUtil;

@:keep @:bitmap("assets/images/logo/default.png")
private class GraphicDefault extends BitmapData {}
Expand Down Expand Up @@ -798,7 +797,7 @@ class FlxSprite extends FlxObject

/**
* Set sprite's color transformation with control over color offsets.
* Offsets only work with FlxG.renderBlit.
* With FlxG.renderTile, offset are only supported on OpenFL Next version 3.6.0 or higher.
*
* @param redMultiplier The value for the red multiplier, in the range from 0 to 1.
* @param greenMultiplier The value for the green multiplier, in the range from 0 to 1.
Expand Down
7 changes: 4 additions & 3 deletions flixel/graphics/tile/FlxDrawTilesItem.hx
Expand Up @@ -58,20 +58,21 @@ class FlxDrawTilesItem extends FlxDrawBaseItem<FlxDrawTilesItem>

drawData[position++] = transform != null ? transform.alphaMultiplier : 1.0;

#if (!openfl_legacy && openfl >= "3.6.0")
if (hasColorOffsets && transform != null)
{
#if (!openfl_legacy && openfl >= "3.6.0")
drawData[position++] = transform.redOffset;
drawData[position++] = transform.greenOffset;
drawData[position++] = transform.blueOffset;
drawData[position++] = transform.alphaOffset;
#end
}
#end
}

override public function render(camera:FlxCamera):Void
{
if (!FlxG.renderTile) return;
if (!FlxG.renderTile)
return;

if (position > 0)
{
Expand Down
24 changes: 12 additions & 12 deletions flixel/graphics/tile/FlxDrawTrianglesItem.hx
Expand Up @@ -260,25 +260,25 @@ class FlxDrawTrianglesItem extends FlxDrawBaseItem<FlxDrawTrianglesItem>
indices[prevIndicesPos + 4] = prevNumberOfVertices + 3;
indices[prevIndicesPos + 5] = prevNumberOfVertices;

var alpha = transform != null ? transform.alphaMultiplier : 1.0;

if (colored)
{
var red = 1.0;
var red = 1.0;
var green = 1.0;
var blue = 1.0;
var blue = 1.0;
var alpha = 1.0;

if (transform != null) {
red = transform.redMultiplier;
if (transform != null)
{
red = transform.redMultiplier;
green = transform.greenMultiplier;
blue = transform.blueMultiplier;
blue = transform.blueMultiplier;

#if !neko
alpha = transform.alphaMultiplier;
#end
}

#if neko
var color:FlxColor = FlxColor.fromRGBFloat(red, green, blue, 1.0);
#else
var color:FlxColor = FlxColor.fromRGBFloat(red, green, blue, alpha);
#end
var color = FlxColor.fromRGBFloat(red, green, blue, alpha);

colors[prevColorsPos] = color;
colors[prevColorsPos + 1] = color;
Expand Down
20 changes: 8 additions & 12 deletions flixel/text/FlxBitmapText.hx
@@ -1,7 +1,5 @@
package flixel.text;

using flixel.util.FlxColorTransformUtil;

import flash.display.BitmapData;
import flixel.FlxBasic;
import flixel.FlxG;
Expand All @@ -15,6 +13,7 @@ import flixel.util.FlxColor;
import flixel.util.FlxDestroyUtil;
import haxe.Utf8;
import openfl.geom.ColorTransform;
using flixel.util.FlxColorTransformUtil;

// TODO: use Utf8 util for converting text to upper/lower case

Expand All @@ -25,8 +24,6 @@ import openfl.geom.ColorTransform;
*/
class FlxBitmapText extends FlxSprite
{
private static var COLOR_TRANSFORM:ColorTransform = new ColorTransform();

/**
* Font for text rendering.
*/
Expand All @@ -40,7 +37,7 @@ class FlxBitmapText extends FlxSprite
/**
* Helper object to avoid many ColorTransform allocations
*/
private var _colorParams:ColorTransform;
private var _colorParams:ColorTransform = new ColorTransform();

/**
* Helper array which contains actual strings for rendering.
Expand Down Expand Up @@ -222,8 +219,6 @@ class FlxBitmapText extends FlxSprite
textDrawData = [];
borderDrawData = [];
}

_colorParams = new ColorTransform();
}

/**
Expand Down Expand Up @@ -1432,12 +1427,12 @@ class FlxBitmapText extends FlxSprite
}
}

private function blitText(posX:Int, posY:Int, isFront:Bool = true, bitmap:BitmapData = null):Void
private function blitText(posX:Int, posY:Int, isFront:Bool = true, ?bitmap:BitmapData):Void
{
_matrix.identity();
_matrix.translate(posX, posY);

var colorToApply:FlxColor = FlxColor.WHITE;
var colorToApply = FlxColor.WHITE;

if (isFront && useTextColor)
{
Expand All @@ -1448,8 +1443,9 @@ class FlxBitmapText extends FlxSprite
colorToApply = borderColor;
}

var cTrans:ColorTransform = COLOR_TRANSFORM;
cTrans.setMultipliers(colorToApply.redFloat, colorToApply.greenFloat, colorToApply.blueFloat, colorToApply.alphaFloat);
_colorParams.setMultipliers(
colorToApply.redFloat, colorToApply.greenFloat,
colorToApply.blueFloat, colorToApply.alphaFloat);

if (isFront && !useTextColor)
{
Expand All @@ -1458,7 +1454,7 @@ class FlxBitmapText extends FlxSprite
}
else
{
bitmap.draw(textBitmap, _matrix, cTrans);
bitmap.draw(textBitmap, _matrix, _colorParams);
}
}

Expand Down
4 changes: 1 addition & 3 deletions flixel/tile/FlxTilemap.hx
@@ -1,7 +1,5 @@
package flixel.tile;

using flixel.util.FlxColorTransformUtil;

import flash.display.BitmapData;
import flash.display.Graphics;
import flash.geom.Point;
Expand All @@ -26,6 +24,7 @@ import flixel.util.FlxDestroyUtil;
import flixel.util.FlxSpriteUtil;
import openfl.display.BlendMode;
import openfl.geom.ColorTransform;
using flixel.util.FlxColorTransformUtil;

@:keep @:bitmap("assets/images/tile/autotiles.png")
class GraphicAuto extends BitmapData {}
Expand Down Expand Up @@ -876,7 +875,6 @@ class FlxTilemap extends FlxBaseTilemap<FlxTile>
scaledHeight = _scaledTileHeight;

var hasColorOffsets:Bool = (colorTransform != null && colorTransform.hasRGBAOffsets());

drawItem = Camera.startQuadBatch(graphic, isColored, hasColorOffsets, blend);
}

Expand Down
89 changes: 30 additions & 59 deletions flixel/util/FlxColorTransformUtil.hx
@@ -1,89 +1,60 @@
package flixel.util;
import flash.geom.ColorTransform;

/**
* ...
* @author ...
*/
import openfl.geom.ColorTransform;

class FlxColorTransformUtil
{

/**
* Set all the color multipliers at once
* @param c the ColorTransform you want to modify
* @param r red multiplier
* @param g green multiplier
* @param b blue multiplier
* @param a alpha multiplier
*/

public static function setMultipliers(c:ColorTransform, r:Float, g:Float, b:Float, a:Float):Void
public static function setMultipliers(transform:ColorTransform, red:Float,
green:Float, blue:Float, alpha:Float):ColorTransform
{
c.redMultiplier = r;
c.greenMultiplier = g;
c.blueMultiplier = b;
c.alphaMultiplier = a;
transform.redMultiplier = red;
transform.greenMultiplier = green;
transform.blueMultiplier = blue;
transform.alphaMultiplier = alpha;

return transform;
}

/**
* Set all the color offsets at once
* @param c the ColorTransform you want to modify
* @param r red offset
* @param g green offset
* @param b blue offset
* @param a alpha offset
*/

public static function setOffsets(c:ColorTransform, r:Int, g:Int, b:Int, a:Int):Void
public static function setOffsets(transform:ColorTransform, red:Int,
green:Int, blue:Int, alpha:Int):ColorTransform
{
c.redOffset = r;
c.greenOffset = g;
c.blueOffset = b;
c.alphaOffset = a;
transform.redOffset = red;
transform.greenOffset = green;
transform.blueOffset = blue;
transform.alphaOffset = alpha;

return transform;
}

/**
* Returns whether red, green, or blue multipliers are set to anything other than 1
* @param c
* @return
* Returns whether red, green, or blue multipliers are set to anything other than 1.
*/

public static function hasRGBMultipliers(c:ColorTransform):Bool
public static function hasRGBMultipliers(transform:ColorTransform):Bool
{
return c.redMultiplier != 1 || c.greenMultiplier != 1 || c.blueMultiplier != 1;
return transform.redMultiplier != 1 || transform.greenMultiplier != 1 || transform.blueMultiplier != 1;
}

/**
* Returns whether red, greeen, blue, or alpha multipliers are set to anything other than 1
* @param c
* @return
* Returns whether red, greeen, blue, or alpha multipliers are set to anything other than 1.
*/

public static function hasRGBAMultipliers(c:ColorTransform):Bool
public static function hasRGBAMultipliers(transform:ColorTransform):Bool
{
return c.redMultiplier != 1 || c.greenMultiplier != 1 || c.blueMultiplier != 1 || c.alphaMultiplier != 1;
return hasRGBMultipliers(transform) || transform.alphaMultiplier != 1;
}

/**
* Returns whether red, green, or blue offsets are set to anything other than 0
* @param c
* @return
* Returns whether red, green, or blue offsets are set to anything other than 0.
*/

public static function hasRGBOffsets(c:ColorTransform):Bool
public static function hasRGBOffsets(transform:ColorTransform):Bool
{
return c.redOffset != 0 || c.greenOffset != 0 || c.blueOffset != 0;
return transform.redOffset != 0 || transform.greenOffset != 0 || transform.blueOffset != 0;
}

/**
* Returns whether red, green, blue, or alpha offsets are set to anything other than 0
* @param c
* @return
* Returns whether red, green, blue, or alpha offsets are set to anything other than 0.
*/

public static function hasRGBAOffsets(c:ColorTransform):Bool
public static function hasRGBAOffsets(transform:ColorTransform):Bool
{
return c.redOffset != 0 || c.greenOffset != 0 || c.blueOffset != 0 || c.alphaOffset != 0;
return hasRGBOffsets(transform) || transform.alphaOffset != 0;
}

}

0 comments on commit cc2c458

Please sign in to comment.