diff --git a/lime/Assets.hx b/lime/Assets.hx index 18925aee6..2221432d6 100644 --- a/lime/Assets.hx +++ b/lime/Assets.hx @@ -283,7 +283,7 @@ class Assets { #if (tools && !display) - #if !js + #if (!js && !flash) loadManifest (); #end @@ -385,6 +385,7 @@ class Assets { } + #if !flash private static function loadManifest ():Void { try { @@ -439,6 +440,7 @@ class Assets { } } + #end public static function loadText (id:String, handler:String -> Void):Void { diff --git a/lime/app/UpdateEventManager.hx b/lime/app/UpdateEventManager.hx index 215ce150d..a0e66e337 100644 --- a/lime/app/UpdateEventManager.hx +++ b/lime/app/UpdateEventManager.hx @@ -7,6 +7,9 @@ import lime.ui.Window; #if js import js.Browser; +#elseif flash +import flash.events.Event; +import flash.Lib; #end @@ -92,6 +95,10 @@ class UpdateEventManager extends EventManager { instance.triggerFrame (); + #elseif flash + + Lib.current.stage.addEventListener (Event.ENTER_FRAME, instance.triggerFrame); + #end } @@ -99,7 +106,7 @@ class UpdateEventManager extends EventManager { } - public function triggerFrame ():Void { + public function triggerFrame (_):Void { handleEvent (event); diff --git a/lime/graphics/CanvasRenderContext.hx b/lime/graphics/CanvasRenderContext.hx new file mode 100644 index 000000000..92345b3bc --- /dev/null +++ b/lime/graphics/CanvasRenderContext.hx @@ -0,0 +1,113 @@ +package lime.graphics; +#if js +typedef CanvasRenderContext = js.html.CanvasRenderingContext2D; +#else + + +class CanvasRenderContext { + + + public var backingStorePixelRatio (default, null):Float; + public var canvas:Dynamic /*CanvasElement*/; + public var fillStyle:Dynamic; + public var font:String; + public var globalAlpha:Float; + public var globalCompositeOperation:String; + public var imageSmoothingEnabled:Bool; + public var lineCap:String; + public var lineDash:Array; + public var lineDashOffset:Float; + public var lineJoin:String; + public var lineWidth:Float; + public var miterLimit:Float; + public var shadowBlur:Float; + public var shadowColor:String; + public var shadowOffsetX:Float; + public var shadowOffsetY:Float; + public var strokeStyle:Dynamic; + public var textAlign:String; + public var textBaseline:String; + + + public function new () { + + + + } + + + public function arc (x:Float, y:Float, radius:Float, startAngle:Float, endAngle:Float, anticlockwise:Bool):Void {}; + public function arcTo (x1:Float, y1:Float, x2:Float, y2:Float, radius:Float):Void {}; + public function beginPath ():Void {}; + public function bezierCurveTo (cp1x:Float, cp1y:Float, cp2x:Float, cp2y:Float, x:Float, y:Float):Void {}; + public function clearRect (x:Float, y:Float, width:Float, height:Float):Void {}; + public function clearShadow ():Void {}; + public function clip ():Void {}; + public function closePath ():Void {}; + @:overload(function(Dynamic /*ImageData*/:Dynamic /*ImageData*/):Dynamic /*ImageData*/ {}) + public function createDynamic /*ImageData*/(sw:Float, sh:Float):Dynamic /*ImageData*/ { return null; }; + public function createLinearGradient(x0:Float, y0:Float, x1:Float, y1:Float):Dynamic /*CanvasGradient*/ { return null; }; + @:overload(function(canvas:Dynamic /*CanvasElement*/, repetitionType:String):Dynamic /*CanvasPattern*/ {}) + public function createPattern (image:Dynamic /*ImageElement*/, repetitionType:String):Dynamic /*CanvasPattern*/ { return null; }; + public function createRadialGradient (x0:Float, y0:Float, r0:Float, x1:Float, y1:Float, r1:Float):Dynamic /*CanvasGradient*/ { return null; }; + @:overload(function(image:Dynamic /*ImageElement*/, x:Float, y:Float):Void {}) + @:overload(function(image:Dynamic /*ImageElement*/, x:Float, y:Float, width:Float, height:Float):Void {}) + @:overload(function(image:Dynamic /*ImageElement*/, sx:Float, sy:Float, sw:Float, sh:Float, dx:Float, dy:Float, dw:Float, dh:Float):Void {}) + @:overload(function(canvas:Dynamic /*CanvasElement*/, x:Float, y:Float):Void {}) + @:overload(function(canvas:Dynamic /*CanvasElement*/, x:Float, y:Float, width:Float, height:Float):Void {}) + @:overload(function(canvas:Dynamic /*CanvasElement*/, sx:Float, sy:Float, sw:Float, sh:Float, dx:Float, dy:Float, dw:Float, dh:Float):Void {}) + @:overload(function(video:Dynamic /*VideoElement*/, x:Float, y:Float):Void {}) + @:overload(function(video:Dynamic /*VideoElement*/, x:Float, y:Float, width:Float, height:Float):Void {}) + public function drawImage (video:Dynamic /*VideoElement*/, sx:Float, sy:Float, sw:Float, sh:Float, dx:Float, dy:Float, dw:Float, dh:Float):Void {}; + public function drawImageFromRect (image:Dynamic /*ImageElement*/, ?sx:Float, ?sy:Float, ?sw:Float, ?sh:Float, ?dx:Float, ?dy:Float, ?dw:Float, ?dh:Float, ?compositeOperation:String):Void {}; + public function fill ():Void {}; + public function fillRect (x:Float, y:Float, width:Float, height:Float):Void {}; + public function fillText (text:String, x:Float, y:Float, ?maxWidth:Float):Void {}; + public function getDynamicImageData (sx:Float, sy:Float, sw:Float, sh:Float):Dynamic /*ImageData*/ { return null; }; + public function getDynamicImageDataHD (sx:Float, sy:Float, sw:Float, sh:Float):Dynamic /*ImageData*/ { return null; }; + public function getLineDash ():Array { return null; }; + public function isPointInPath (x:Float, y:Float):Bool { return false; }; + public function lineTo (x:Float, y:Float):Void {}; + public function measureText(text:String):Dynamic /*TextMetrics*/ { return null; }; + public function moveTo (x:Float, y:Float):Void {}; + @:overload(function(Dynamic /*ImageData*/:Dynamic /*ImageData*/, dx:Float, dy:Float):Void {}) + public function putDynamicImageData (Dynamic /*ImageData*/:Dynamic /*ImageData*/, dx:Float, dy:Float, dirtyX:Float, dirtyY:Float, dirtyWidth:Float, dirtyHeight:Float):Void {}; + @:overload(function(Dynamic /*ImageData*/:Dynamic /*ImageData*/, dx:Float, dy:Float):Void {}) + public function putDynamicImageDataHD (Dynamic /*ImageData*/:Dynamic /*ImageData*/, dx:Float, dy:Float, dirtyX:Float, dirtyY:Float, dirtyWidth:Float, dirtyHeight:Float):Void {}; + public function quadraticCurveTo (cpx:Float, cpy:Float, x:Float, y:Float):Void {}; + public function rect (x:Float, y:Float, width:Float, height:Float):Void {}; + public function restore ():Void {}; + public function rotate (angle:Float):Void {}; + public function save ():Void {}; + public function scale (sx:Float, sy:Float):Void {}; + public function setAlpha (alpha:Float):Void {}; + public function setCompositeOperation (compositeOperation:String):Void {}; + @:overload(function(color:String, ?alpha:Float):Void {}) + @:overload(function(grayLevel:Float, ?alpha:Float):Void {}) + @:overload(function(r:Float, g:Float, b:Float, a:Float):Void {}) + public function setFillColor (c:Float, m:Float, y:Float, k:Float, a:Float):Void {}; + public function setLineCap (cap:String):Void {}; + public function setLineDash (dash:Array):Void {}; + public function setLineJoin (join:String):Void {}; + public function setLineWidth (width:Float):Void {}; + public function setMiterLimit (limit:Float):Void {}; + @:overload(function(width:Float, height:Float, blur:Float, ?color:String, ?alpha:Float):Void {}) + @:overload(function(width:Float, height:Float, blur:Float, grayLevel:Float, ?alpha:Float):Void {}) + @:overload(function(width:Float, height:Float, blur:Float, r:Float, g:Float, b:Float, a:Float):Void {}) + public function setShadow (width:Float, height:Float, blur:Float, c:Float, m:Float, y:Float, k:Float, a:Float):Void {}; + @:overload(function(color:String, ?alpha:Float):Void {}) + @:overload(function(grayLevel:Float, ?alpha:Float):Void {}) + @:overload(function(r:Float, g:Float, b:Float, a:Float):Void {}) + public function setStrokeColor (c:Float, m:Float, y:Float, k:Float, a:Float):Void {}; + public function setTransform (m11:Float, m12:Float, m21:Float, m22:Float, dx:Float, dy:Float):Void {}; + public function stroke ():Void {}; + public function strokeRect (x:Float, y:Float, width:Float, height:Float, ?lineWidth:Float):Void {}; + public function strokeText (text:String, x:Float, y:Float, ?maxWidth:Float):Void {}; + public function transform (m11:Float, m12:Float, m21:Float, m22:Float, dx:Float, dy:Float):Void {}; + public function translate (tx:Float, ty:Float):Void {}; + + +} + + +#end \ No newline at end of file diff --git a/lime/graphics/DOMRenderContext.hx b/lime/graphics/DOMRenderContext.hx new file mode 100644 index 000000000..7213c6300 --- /dev/null +++ b/lime/graphics/DOMRenderContext.hx @@ -0,0 +1,183 @@ +package lime.graphics; +#if js +typedef DOMRenderContext = js.html.DivElement; +#else + + +class DOMRenderContext { + + + public var accessKey:String; + public var align:String; + public var attributes (default, null):Dynamic /*NamedNodeMap*/; + public var baseURI (default, null):String; + public var childElementCount (default, null):Int; + public var childNodes (default, null):Dynamic /*NodeList*/; + public var children (default, null):Dynamic /*HTMLCollection*/; + public var classList (default, null):Dynamic /*DOMTokenList*/; + public var className:String; + public var clientHeight (default, null):Int; + public var clientLeft (default, null):Int; + public var clientTop (default, null):Int; + public var clientWidth (default, null):Int; + public var contentEditable:String; + public var dataset (default, null):Dynamic; + public var dir:String; + public var draggable:Bool; + public var dropzone:String; + public var firstChild (default, null):Dynamic /*Node*/; + public var firstElementChild (default, null):Dynamic /*Element*/; + public var hidden:Bool; + public var id:String; + public var innerHTML:String; + public var innerText:String; + public var isContentEditable (default, null):Bool; + public var lang:String; + public var lastChild (default, null):Dynamic /*Node*/; + public var lastElementChild (default, null):Dynamic /*Element*/; + public var localName (default, null):String; + public var namespaceURI (default, null):String; + public var nextElementSibling (default, null):Dynamic /*Element*/; + public var nextSibling (default, null):Dynamic /*Node*/; + public var nodeName (default, null):String; + public var nodeType (default, null):Int; + public var nodeValue:String; + public var offsetHeight (default, null):Int; + public var offsetLeft (default, null):Int; + public var offsetParent (default, null):Dynamic /*Element*/; + public var offsetTop (default, null):Int; + public var offsetWidth (default, null):Int; + public var onabort:Dynamic /*EventListener*/; + public var onbeforecopy:Dynamic /*EventListener*/; + public var onbeforecut:Dynamic /*EventListener*/; + public var onbeforepaste:Dynamic /*EventListener*/; + public var onblur:Dynamic /*EventListener*/; + public var onchange:Dynamic /*EventListener*/; + public var onclick:Dynamic /*EventListener*/; + public var oncontextmenu:Dynamic /*EventListener*/; + public var oncopy:Dynamic /*EventListener*/; + public var oncut:Dynamic /*EventListener*/; + public var ondblclick:Dynamic /*EventListener*/; + public var ondrag:Dynamic /*EventListener*/; + public var ondragend:Dynamic /*EventListener*/; + public var ondragenter:Dynamic /*EventListener*/; + public var ondragleave:Dynamic /*EventListener*/; + public var ondragover:Dynamic /*EventListener*/; + public var ondragstart:Dynamic /*EventListener*/; + public var ondrop:Dynamic /*EventListener*/; + public var onerror:Dynamic /*EventListener*/; + public var onfocus:Dynamic /*EventListener*/; + public var onfullscreenchange:Dynamic /*EventListener*/; + public var onfullscreenerror:Dynamic /*EventListener*/; + public var oninput:Dynamic /*EventListener*/; + public var oninvalid:Dynamic /*EventListener*/; + public var onkeydown:Dynamic /*EventListener*/; + public var onkeypress:Dynamic /*EventListener*/; + public var onkeyup:Dynamic /*EventListener*/; + public var onload:Dynamic /*EventListener*/; + public var onmousedown:Dynamic /*EventListener*/; + public var onmousemove:Dynamic /*EventListener*/; + public var onmouseout:Dynamic /*EventListener*/; + public var onmouseover:Dynamic /*EventListener*/; + public var onmouseup:Dynamic /*EventListener*/; + public var onmousewheel:Dynamic /*EventListener*/; + public var onpaste:Dynamic /*EventListener*/; + public var onreset:Dynamic /*EventListener*/; + public var onscroll:Dynamic /*EventListener*/; + public var onsearch:Dynamic /*EventListener*/; + public var onselect:Dynamic /*EventListener*/; + public var onselectstart:Dynamic /*EventListener*/; + public var onsubmit:Dynamic /*EventListener*/; + public var ontouchcancel:Dynamic /*EventListener*/; + public var ontouchend:Dynamic /*EventListener*/; + public var ontouchmove:Dynamic /*EventListener*/; + public var ontouchstart:Dynamic /*EventListener*/; + public var outerHTML:String; + public var outerText:String; + public var ownerDocument (default, null):Dynamic /*Document*/; + public var parentElement (default, null):Dynamic /*Element*/; + public var parentNode (default, null):Dynamic /*Node*/; + public var prefix:String; + public var previousElementSibling (default, null):Dynamic /*Element*/; + public var previousSibling (default, null):Dynamic /*Node*/; + public var pseudo:String; + public var scrollHeight (default, null):Int; + public var scrollLeft:Int; + public var scrollTop:Int; + public var scrollWidth (default, null):Int; + public var spellcheck:Bool; + public var style (default, null):Dynamic /*CSSStyleDeclaration*/; + public var tabIndex:Int; + public var tagName (default, null):String; + public var textContent:String; + public var title:String; + public var translate:Bool; + + + public function new () { + + + + } + + + public function addEventListener (type:String, listener:Dynamic /*EventListener*/, ?useCapture:Bool):Void {}; + public function appendChild (newChild:Dynamic /*Node*/):Dynamic /*Node*/ { return null; }; + public function blur ():Void {}; + public function click ():Void {}; + public function cloneNode (deep:Bool):Dynamic /*Node*/ { return null; }; + public function compareDocumentPosition (other:Dynamic /*Node*/):Int { return -1; }; + public function contains (other:Dynamic /*Node*/):Bool { return false; }; + public function dispatchEvent (event:Dynamic /*Event*/):Bool { return false; }; + public function focus ():Void {}; + public function getAttribute (name:String):String { return null; }; + public function getAttributeNS (?namespaceURI:String, localName:String):String { return null; }; + public function getAttributeNode (name:String):Dynamic /*Attr*/ { return null; }; + public function getAttributeNodeNS (?namespaceURI:String, localName:String):Dynamic /*Attr*/ { return null; }; + public function getBoundingClientRect ():Dynamic /*ClientRect*/ { return null; }; + public function getClientRects ():Dynamic /*ClientRectList*/ { return null; }; + public function getElementsByClassName (name:String):Dynamic /*NodeList*/ { return null; }; + public function getElementsByTagName (name:String):Dynamic /*NodeList*/ { return null; }; + public function getElementsByTagNameNS (?namespaceURI:String, localName:String):Dynamic /*NodeList*/ { return null; }; + public function hasAttribute (name:String):Bool { return false; }; + public function hasAttributeNS (?namespaceURI:String, localName:String):Bool { return false; }; + public function hasAttributes ():Bool { return false; }; + public function hasChildNodes ():Bool { return false; }; + public function insertAdjacentElement (where:String, element:Dynamic /*Element*/):Dynamic /*Element*/ { return null; }; + public function insertAdjacentHTML (where:String, html:String):Void {}; + public function insertAdjacentText (where:String, text:String):Void {}; + public function insertBefore (newChild:Dynamic /*Node*/, refChild:Dynamic /*Node*/):Dynamic /*Node*/ { return null; }; + public function isDefaultNamespace (?namespaceURI:String):Bool { return false; }; + public function isEqualNode (other:Dynamic /*Node*/):Bool { return false; }; + public function isSameNode (other:Dynamic /*Node*/):Bool { return false; }; + public function isSupported (feature:String, ?version:String):Bool { return false; }; + public function lookupNamespaceURI (?prefix:String):String { return null; }; + public function lookupPrefix (?namespaceURI:String):String { return null; }; + public function matchesSelector (selectors:String):Bool { return false; }; + public function normalize ():Void {}; + public function querySelector (selectors:String):Dynamic /*Element*/ { return null; }; + public function querySelectorAll (selectors:String):Dynamic /*NodeList*/ { return null; }; + public function remove ():Void {}; + public function removeAttribute (name:String):Void {}; + public function removeAttributeNS (namespaceURI:String, localName:String):Void {}; + public function removeAttributeNode (oldAttr:Dynamic /*Attr*/):Dynamic /*Attr*/ { return null; }; + public function removeChild (oldChild:Dynamic /*Node*/):Dynamic /*Node*/ { return null; }; + public function removeEventListener (type:String, listener:Dynamic /*EventListener*/, ?useCapture:Bool):Void {}; + public function replaceChild (newChild:Dynamic /*Node*/, oldChild:Dynamic /*Node*/):Dynamic /*Node*/ { return null; }; + public function requestFullScreen (flags:Int):Void {}; + public function requestFullscreen ():Void {}; + public function requestPointerLock ():Void {}; + public function scrollByLines (lines:Int):Void {}; + public function scrollByPages (pages:Int):Void {}; + public function scrollIntoView (?alignWithTop:Bool):Void {}; + public function scrollIntoViewIfNeeded (?centerIfNeeded:Bool):Void {}; + public function setAttribute (name:String, value:String):Void {}; + public function setAttributeNS (?namespaceURI:String, qualifiedName:String, value:String):Void {}; + public function setAttributeNode (newAttr:Dynamic /*Attr*/):Dynamic /*Attr*/ { return null; }; + public function setAttributeNodeNS (newAttr:Dynamic /*Attr*/):Dynamic /*Attr*/ { return null; }; + + +} + + +#end \ No newline at end of file diff --git a/lime/graphics/FlashRenderContext.hx b/lime/graphics/FlashRenderContext.hx new file mode 100644 index 000000000..771cbf287 --- /dev/null +++ b/lime/graphics/FlashRenderContext.hx @@ -0,0 +1,108 @@ +package lime.graphics; +#if flash +typedef FlashRenderContext = flash.display.Sprite; +#else + + +class FlashRenderContext { + + + public var accessibilityImplementation:Dynamic /*flash.accessibility.AccessibilityImplementation*/; + public var accessibilityProperties:Dynamic /*flash.accessibility.AccessibilityProperties*/; + public var alpha:Float; + public var blendMode:Dynamic /*BlendMode*/; + public var blendShader (null, default):Dynamic /*Shader*/; + public var buttonMode:Bool; + public var cacheAsBitmap:Bool; + public var contextMenu:Dynamic /*flash.ui.ContextMenu*/; + public var doubleClickEnabled:Bool; + public var dropTarget (default, null):Dynamic /*DisplayObject*/; + public var filters:Array; + public var focusRect:Dynamic; + public var graphics (default, null):Dynamic /*Graphics*/; + public var height:Float; + public var hitArea:Dynamic /*Sprite*/; + public var loaderInfo (default, null):Dynamic /*LoaderInfo*/; + public var mask:Dynamic /*DisplayObject*/; + public var mouseChildren:Bool; + public var mouseEnabled:Bool; + public var mouseX (default, null):Float; + public var mouseY (default, null):Float; + public var name:String; + public var needsSoftKeyboard:Bool; + public var numChildren (default, null):Int; + public var opaqueBackground:Null; + public var parent (default, null):Dynamic /*DisplayObjectContainer*/; + public var root (default, null):Dynamic /*DisplayObject*/; + public var rotation:Float; + public var rotationX:Float; + public var rotationY:Float; + public var rotationZ:Float; + public var scale9Grid:Dynamic /*flash.geom.Rectangle*/; + public var scaleX:Float; + public var scaleY:Float; + public var scaleZ:Float; + public var scrollRect:Dynamic /*flash.geom.Rectangle*/; + public var softKeyboardInputAreaOfInterest:Dynamic /*flash.geom.Rectangle*/; + public var soundTransform:Dynamic /*flash.media.SoundTransform*/; + public var stage (default, null):Dynamic /*Stage*/; + public var tabChildren:Bool; + public var tabEnabled:Bool; + public var tabIndex:Int; + public var textSnapshot (default, null):Dynamic /*flash.text.TextSnapshot*/; + public var transform:Dynamic /*flash.geom.Transform*/; + public var useHandCursor:Bool; + public var visible:Bool; + public var width:Float; + public var x:Float; + public var y:Float; + public var z:Float; + + + public function new () { + + + + } + + + public function addChild (child:Dynamic /*DisplayObject*/):Dynamic /*DisplayObject*/ { return null; }; + public function addChildAt (child:Dynamic /*DisplayObject*/, index:Int):Dynamic /*DisplayObject*/ { return null; }; + public function addEventListener (type:String, listener:Dynamic->Void, useCapture:Bool = false, priority:Int = 0, useWeakReference:Bool = false):Void {}; + public function areInaccessibleObjectsUnderPoint (point:Dynamic /*flash.geom.Point*/):Bool { return false; }; + public function contains (child:Dynamic /*DisplayObject*/):Bool { return false; }; + public function dispatchEvent (event:Dynamic /*Event*/):Bool { return false; }; + public function getBounds (targetCoordinateSpace:Dynamic /*DisplayObject*/):Dynamic /*flash.geom.Rectangle*/ { return null; }; + public function getChildAt (index:Int):Dynamic /*DisplayObject*/ { return null; }; + public function getChildByName (name:String):Dynamic /*DisplayObject*/ { return null; }; + public function getChildIndex (child:Dynamic /*DisplayObject*/):Int { return 0; }; + public function getObjectsUnderPoint (point:Dynamic /*flash.geom.Point*/):Array { return null; }; + public function getRect (targetCoordinateSpace:Dynamic /*DisplayObject*/):Dynamic /*flash.geom.Rectangle*/ { return null; }; + public function globalToLocal (point:Dynamic /*flash.geom.Point*/):Dynamic /*flash.geom.Point*/ { return null; }; + public function globalToLocal3D (point:Dynamic /*flash.geom.Point*/):Dynamic /*flash.geom.Vector3D*/ { return null; }; + public function hasEventListener (type:String):Bool { return false; }; + public function hitTestObject (obj:Dynamic /*DisplayObject*/):Bool { return false; }; + public function hitTestPoint (x:Float, y:Float, shapeFlag:Bool = false):Bool { return false; }; + public function local3DToGlobal (point3d:Dynamic /*flash.geom.Vector3D*/):Dynamic /*flash.geom.Point*/ { return null; }; + public function localToGlobal (point:Dynamic /*flash.geom.Point*/):Dynamic /*flash.geom.Point*/ { return null; }; + public function removeChild (child:Dynamic /*DisplayObject*/):Dynamic /*DisplayObject*/ { return null; }; + public function removeChildAt (index:Int):Dynamic /*DisplayObject*/ { return null; }; + public function removeChildren (beginIndex:Int = 0, endIndex:Int = 2147483647):Void {}; + public function removeEventListener (type:String, listener:Dynamic->Void, useCapture:Bool = false):Void {}; + public function requestSoftKeyboard ():Bool { return false; }; + public function setChildIndex (child:Dynamic /*DisplayObject*/, index:Int):Void {}; + public function startDrag (lockCenter:Bool = false, ?bounds:Dynamic /*flash.geom.Rectangle*/):Void {}; + public function startTouchDrag (touchPointID:Int, lockCenter:Bool = false, ?bounds:Dynamic /*flash.geom.Rectangle*/):Void {}; + public function stopAllMovieClips ():Void {}; + public function stopDrag ():Void {}; + public function stopTouchDrag (touchPointID:Int):Void {}; + public function swapChildren (child1:Dynamic /*DisplayObject*/, child2:Dynamic /*DisplayObject*/):Void {}; + public function swapChildrenAt (index1:Int, index2:Int):Void {}; + public function toString ():String { return null; }; + public function willTrigger (type:String):Bool { return false; }; + + +} + + +#end \ No newline at end of file diff --git a/lime/graphics/opengl/GLRenderContext.hx b/lime/graphics/GLRenderContext.hx similarity index 99% rename from lime/graphics/opengl/GLRenderContext.hx rename to lime/graphics/GLRenderContext.hx index 5763fb4cd..a8d0641f0 100644 --- a/lime/graphics/opengl/GLRenderContext.hx +++ b/lime/graphics/GLRenderContext.hx @@ -1,6 +1,7 @@ -package lime.graphics.opengl; +package lime.graphics; +import lime.graphics.opengl.*; import lime.utils.ArrayBuffer; import lime.utils.ArrayBufferView; import lime.utils.Float32Array; diff --git a/lime/graphics/RenderContext.hx b/lime/graphics/RenderContext.hx index be1d15651..c1b20b9aa 100644 --- a/lime/graphics/RenderContext.hx +++ b/lime/graphics/RenderContext.hx @@ -1,9 +1,10 @@ package lime.graphics; -import lime.graphics.canvas.CanvasRenderContext; -import lime.graphics.dom.DOMRenderContext; -import lime.graphics.opengl.GLRenderContext; +import lime.graphics.CanvasRenderContext; +import lime.graphics.DOMRenderContext; +import lime.graphics.FlashRenderContext; +import lime.graphics.GLRenderContext; enum RenderContext { @@ -11,6 +12,7 @@ enum RenderContext { OPENGL (gl:GLRenderContext); CANVAS (context:CanvasRenderContext); DOM (element:DOMRenderContext); + FLASH (stage:FlashRenderContext); CUSTOM (data:Dynamic); } \ No newline at end of file diff --git a/lime/graphics/Renderer.hx b/lime/graphics/Renderer.hx index 3f6b5ec22..e3f5179c5 100644 --- a/lime/graphics/Renderer.hx +++ b/lime/graphics/Renderer.hx @@ -2,12 +2,14 @@ package lime.graphics; import lime.graphics.opengl.GL; -import lime.graphics.opengl.GLRenderContext; +import lime.graphics.GLRenderContext; import lime.system.System; import lime.ui.Window; #if js import js.html.webgl.RenderingContext; +#elseif flash +import flash.Lib; #end @@ -68,8 +70,6 @@ class Renderer { GL.context = webgl; context = OPENGL (new GLRenderContext ()); - trace ("context ready"); - } } @@ -79,6 +79,10 @@ class Renderer { handle = lime_renderer_create (window.handle); context = OPENGL (new GLRenderContext ()); + #elseif flash + + context = FLASH (Lib.current); + #end } diff --git a/lime/graphics/canvas/CanvasRenderContext.hx b/lime/graphics/canvas/CanvasRenderContext.hx deleted file mode 100644 index 1dfd5ddcd..000000000 --- a/lime/graphics/canvas/CanvasRenderContext.hx +++ /dev/null @@ -1,122 +0,0 @@ -package lime.graphics.canvas; -#if js -typedef CanvasRenderContext = js.html.CanvasRenderingContext2D; -#else - - -typedef CanvasElement = Dynamic; -typedef CanvasGradient = Dynamic; -typedef CanvasPattern = Dynamic; -typedef ImageData = Dynamic; -typedef ImageElement = Dynamic; -typedef TextMetrics = Dynamic; -typedef VideoElement = Dynamic; - - -class CanvasRenderContext { - - - public var backingStorePixelRatio (default, null):Float; - public var canvas:CanvasElement; - public var fillStyle:Dynamic; - public var font:String; - public var globalAlpha:Float; - public var globalCompositeOperation:String; - public var imageSmoothingEnabled:Bool; - public var lineCap:String; - public var lineDash:Array; - public var lineDashOffset:Float; - public var lineJoin:String; - public var lineWidth:Float; - public var miterLimit:Float; - public var shadowBlur:Float; - public var shadowColor:String; - public var shadowOffsetX:Float; - public var shadowOffsetY:Float; - public var strokeStyle:Dynamic; - public var textAlign:String; - public var textBaseline:String; - - - public function new () { - - - - } - - - public function arc(x:Float, y:Float, radius:Float, startAngle:Float, endAngle:Float, anticlockwise:Bool):Void {}; - public function arcTo(x1:Float, y1:Float, x2:Float, y2:Float, radius:Float):Void {}; - public function beginPath():Void {}; - public function bezierCurveTo(cp1x:Float, cp1y:Float, cp2x:Float, cp2y:Float, x:Float, y:Float):Void {}; - public function clearRect(x:Float, y:Float, width:Float, height:Float):Void {}; - public function clearShadow():Void {}; - public function clip():Void {}; - public function closePath():Void {}; - @:overload(function(imagedata:ImageData):ImageData {}) - public function createImageData(sw:Float, sh:Float):ImageData { return null; }; - public function createLinearGradient(x0:Float, y0:Float, x1:Float, y1:Float):CanvasGradient { return null; }; - @:overload(function(canvas:CanvasElement, repetitionType:String):CanvasPattern {}) - public function createPattern(image:ImageElement, repetitionType:String):CanvasPattern { return null; }; - public function createRadialGradient(x0:Float, y0:Float, r0:Float, x1:Float, y1:Float, r1:Float):CanvasGradient { return null; }; - @:overload(function(image:ImageElement, x:Float, y:Float):Void {}) - @:overload(function(image:ImageElement, x:Float, y:Float, width:Float, height:Float):Void {}) - @:overload(function(image:ImageElement, sx:Float, sy:Float, sw:Float, sh:Float, dx:Float, dy:Float, dw:Float, dh:Float):Void {}) - @:overload(function(canvas:CanvasElement, x:Float, y:Float):Void {}) - @:overload(function(canvas:CanvasElement, x:Float, y:Float, width:Float, height:Float):Void {}) - @:overload(function(canvas:CanvasElement, sx:Float, sy:Float, sw:Float, sh:Float, dx:Float, dy:Float, dw:Float, dh:Float):Void {}) - @:overload(function(video:VideoElement, x:Float, y:Float):Void {}) - @:overload(function(video:VideoElement, x:Float, y:Float, width:Float, height:Float):Void {}) - public function drawImage(video:VideoElement, sx:Float, sy:Float, sw:Float, sh:Float, dx:Float, dy:Float, dw:Float, dh:Float):Void {}; - public function drawImageFromRect(image:ImageElement, ?sx:Float, ?sy:Float, ?sw:Float, ?sh:Float, ?dx:Float, ?dy:Float, ?dw:Float, ?dh:Float, ?compositeOperation:String):Void {}; - public function fill():Void {}; - public function fillRect(x:Float, y:Float, width:Float, height:Float):Void {}; - public function fillText(text:String, x:Float, y:Float, ?maxWidth:Float):Void {}; - public function getImageData(sx:Float, sy:Float, sw:Float, sh:Float):ImageData { return null; }; - public function getImageDataHD(sx:Float, sy:Float, sw:Float, sh:Float):ImageData { return null; }; - public function getLineDash():Array { return null; }; - public function isPointInPath(x:Float, y:Float):Bool { return false; }; - public function lineTo(x:Float, y:Float):Void {}; - public function measureText(text:String):TextMetrics { return null; }; - public function moveTo(x:Float, y:Float):Void {}; - @:overload(function(imagedata:ImageData, dx:Float, dy:Float):Void {}) - public function putImageData(imagedata:ImageData, dx:Float, dy:Float, dirtyX:Float, dirtyY:Float, dirtyWidth:Float, dirtyHeight:Float):Void {}; - @:overload(function(imagedata:ImageData, dx:Float, dy:Float):Void {}) - public function putImageDataHD(imagedata:ImageData, dx:Float, dy:Float, dirtyX:Float, dirtyY:Float, dirtyWidth:Float, dirtyHeight:Float):Void {}; - public function quadraticCurveTo(cpx:Float, cpy:Float, x:Float, y:Float):Void {}; - public function rect(x:Float, y:Float, width:Float, height:Float):Void {}; - public function restore():Void {}; - public function rotate(angle:Float):Void {}; - public function save():Void {}; - public function scale(sx:Float, sy:Float):Void {}; - public function setAlpha(alpha:Float):Void {}; - public function setCompositeOperation(compositeOperation:String):Void {}; - @:overload(function(color:String, ?alpha:Float):Void {}) - @:overload(function(grayLevel:Float, ?alpha:Float):Void {}) - @:overload(function(r:Float, g:Float, b:Float, a:Float):Void {}) - public function setFillColor(c:Float, m:Float, y:Float, k:Float, a:Float):Void {}; - public function setLineCap(cap:String):Void {}; - public function setLineDash(dash:Array):Void {}; - public function setLineJoin(join:String):Void {}; - public function setLineWidth(width:Float):Void {}; - public function setMiterLimit(limit:Float):Void {}; - @:overload(function(width:Float, height:Float, blur:Float, ?color:String, ?alpha:Float):Void {}) - @:overload(function(width:Float, height:Float, blur:Float, grayLevel:Float, ?alpha:Float):Void {}) - @:overload(function(width:Float, height:Float, blur:Float, r:Float, g:Float, b:Float, a:Float):Void {}) - public function setShadow(width:Float, height:Float, blur:Float, c:Float, m:Float, y:Float, k:Float, a:Float):Void {}; - @:overload(function(color:String, ?alpha:Float):Void {}) - @:overload(function(grayLevel:Float, ?alpha:Float):Void {}) - @:overload(function(r:Float, g:Float, b:Float, a:Float):Void {}) - public function setStrokeColor (c:Float, m:Float, y:Float, k:Float, a:Float):Void {}; - public function setTransform (m11:Float, m12:Float, m21:Float, m22:Float, dx:Float, dy:Float):Void {}; - public function stroke ():Void {}; - public function strokeRect (x:Float, y:Float, width:Float, height:Float, ?lineWidth:Float):Void {}; - public function strokeText (text:String, x:Float, y:Float, ?maxWidth:Float):Void {}; - public function transform (m11:Float, m12:Float, m21:Float, m22:Float, dx:Float, dy:Float):Void {}; - public function translate (tx:Float, ty:Float):Void {}; - - -} - - -#end \ No newline at end of file diff --git a/lime/graphics/dom/DOMRenderContext.hx b/lime/graphics/dom/DOMRenderContext.hx deleted file mode 100644 index e344bff9b..000000000 --- a/lime/graphics/dom/DOMRenderContext.hx +++ /dev/null @@ -1,198 +0,0 @@ -package lime.graphics.dom; -#if js -typedef DOMRenderContext = js.html.DivElement; -#else - - -typedef Attr = Dynamic; -typedef ClientRect = Dynamic; -typedef ClientRectList = Dynamic; -typedef CSSStyleDeclaration = Dynamic; -typedef Document = Dynamic; -typedef DOMTokenList = Dynamic; -typedef Element = Dynamic; -typedef Event = Dynamic; -typedef EventListener = Dynamic; -typedef HTMLCollection = Dynamic; -typedef NamedNodeMap = Dynamic; -typedef Node = Dynamic; -typedef NodeList = Dynamic; - - -class DOMRenderContext { - - - public var accessKey:String; - public var align:String; - public var attributes (default, null):NamedNodeMap; - public var baseURI (default, null):String; - public var childElementCount (default, null):Int; - public var childNodes (default, null):NodeList; - public var children (default, null):HTMLCollection; - public var classList (default, null):DOMTokenList; - public var className:String; - public var clientHeight (default, null):Int; - public var clientLeft (default, null):Int; - public var clientTop (default, null):Int; - public var clientWidth (default, null):Int; - public var contentEditable:String; - public var dataset (default, null):Dynamic; - public var dir:String; - public var draggable:Bool; - public var dropzone:String; - public var firstChild (default, null):Node; - public var firstElementChild (default, null):Element; - public var hidden:Bool; - public var id:String; - public var innerHTML:String; - public var innerText:String; - public var isContentEditable (default, null):Bool; - public var lang:String; - public var lastChild (default, null):Node; - public var lastElementChild (default, null):Element; - public var localName (default, null):String; - public var namespaceURI (default, null):String; - public var nextElementSibling (default, null):Element; - public var nextSibling (default, null):Node; - public var nodeName (default, null):String; - public var nodeType (default, null):Int; - public var nodeValue:String; - public var offsetHeight (default, null):Int; - public var offsetLeft (default, null):Int; - public var offsetParent (default, null):Element; - public var offsetTop (default, null):Int; - public var offsetWidth (default, null):Int; - public var onabort:EventListener; - public var onbeforecopy:EventListener; - public var onbeforecut:EventListener; - public var onbeforepaste:EventListener; - public var onblur:EventListener; - public var onchange:EventListener; - public var onclick:EventListener; - public var oncontextmenu:EventListener; - public var oncopy:EventListener; - public var oncut:EventListener; - public var ondblclick:EventListener; - public var ondrag:EventListener; - public var ondragend:EventListener; - public var ondragenter:EventListener; - public var ondragleave:EventListener; - public var ondragover:EventListener; - public var ondragstart:EventListener; - public var ondrop:EventListener; - public var onerror:EventListener; - public var onfocus:EventListener; - public var onfullscreenchange:EventListener; - public var onfullscreenerror:EventListener; - public var oninput:EventListener; - public var oninvalid:EventListener; - public var onkeydown:EventListener; - public var onkeypress:EventListener; - public var onkeyup:EventListener; - public var onload:EventListener; - public var onmousedown:EventListener; - public var onmousemove:EventListener; - public var onmouseout:EventListener; - public var onmouseover:EventListener; - public var onmouseup:EventListener; - public var onmousewheel:EventListener; - public var onpaste:EventListener; - public var onreset:EventListener; - public var onscroll:EventListener; - public var onsearch:EventListener; - public var onselect:EventListener; - public var onselectstart:EventListener; - public var onsubmit:EventListener; - public var ontouchcancel:EventListener; - public var ontouchend:EventListener; - public var ontouchmove:EventListener; - public var ontouchstart:EventListener; - public var outerHTML:String; - public var outerText:String; - public var ownerDocument (default, null):Document; - public var parentElement (default, null):Element; - public var parentNode (default, null):Node; - public var prefix:String; - public var previousElementSibling (default, null):Element; - public var previousSibling (default, null):Node; - public var pseudo:String; - public var scrollHeight (default, null):Int; - public var scrollLeft:Int; - public var scrollTop:Int; - public var scrollWidth (default, null):Int; - public var spellcheck:Bool; - public var style (default, null):CSSStyleDeclaration; - public var tabIndex:Int; - public var tagName (default, null):String; - public var textContent:String; - public var title:String; - public var translate:Bool; - - - public function new () { - - - - } - - - public function addEventListener (type:String, listener:EventListener, ?useCapture:Bool):Void {}; - public function appendChild (newChild:Node):Node { return null; }; - public function blur ():Void {}; - public function click ():Void {}; - public function cloneNode (deep:Bool):Node { return null; }; - public function compareDocumentPosition (other:Node):Int { return -1; }; - public function contains (other:Node):Bool { return false; }; - public function dispatchEvent (event:Event):Bool { return false; }; - public function focus ():Void {}; - public function getAttribute (name:String):String { return null; }; - public function getAttributeNS (?namespaceURI:String, localName:String):String { return null; }; - public function getAttributeNode (name:String):Attr { return null; }; - public function getAttributeNodeNS (?namespaceURI:String, localName:String):Attr { return null; }; - public function getBoundingClientRect ():ClientRect { return null; }; - public function getClientRects ():ClientRectList { return null; }; - public function getElementsByClassName (name:String):NodeList { return null; }; - public function getElementsByTagName (name:String):NodeList { return null; }; - public function getElementsByTagNameNS (?namespaceURI:String, localName:String):NodeList { return null; }; - public function hasAttribute (name:String):Bool { return false; }; - public function hasAttributeNS (?namespaceURI:String, localName:String):Bool { return false; }; - public function hasAttributes ():Bool { return false; }; - public function hasChildNodes ():Bool { return false; }; - public function insertAdjacentElement (where:String, element:Element):Element { return null; }; - public function insertAdjacentHTML (where:String, html:String):Void {}; - public function insertAdjacentText (where:String, text:String):Void {}; - public function insertBefore (newChild:Node, refChild:Node):Node { return null; }; - public function isDefaultNamespace (?namespaceURI:String):Bool { return false; }; - public function isEqualNode (other:Node):Bool { return false; }; - public function isSameNode (other:Node):Bool { return false; }; - public function isSupported (feature:String, ?version:String):Bool { return false; }; - public function lookupNamespaceURI (?prefix:String):String { return null; }; - public function lookupPrefix (?namespaceURI:String):String { return null; }; - public function matchesSelector (selectors:String):Bool { return false; }; - public function normalize ():Void {}; - public function querySelector (selectors:String):Element { return null; }; - public function querySelectorAll (selectors:String):NodeList { return null; }; - public function remove ():Void {}; - public function removeAttribute (name:String):Void {}; - public function removeAttributeNS (namespaceURI:String, localName:String):Void {}; - public function removeAttributeNode (oldAttr:Attr):Attr { return null; }; - public function removeChild (oldChild:Node):Node { return null; }; - public function removeEventListener (type:String, listener:EventListener, ?useCapture:Bool):Void {}; - public function replaceChild (newChild:Node, oldChild:Node):Node { return null; }; - public function requestFullScreen (flags:Int):Void {}; - public function requestFullscreen ():Void {}; - public function requestPointerLock ():Void {}; - public function scrollByLines (lines:Int):Void {}; - public function scrollByPages (pages:Int):Void {}; - public function scrollIntoView (?alignWithTop:Bool):Void {}; - public function scrollIntoViewIfNeeded (?centerIfNeeded:Bool):Void {}; - public function setAttribute (name:String, value:String):Void {}; - public function setAttributeNS (?namespaceURI:String, qualifiedName:String, value:String):Void {}; - public function setAttributeNode (newAttr:Attr):Attr { return null; }; - public function setAttributeNodeNS (newAttr:Attr):Attr { return null; }; - - -} - - -#end \ No newline at end of file diff --git a/lime/graphics/opengl/GL.hx b/lime/graphics/opengl/GL.hx index 8598ffb77..be72a3135 100644 --- a/lime/graphics/opengl/GL.hx +++ b/lime/graphics/opengl/GL.hx @@ -373,7 +373,8 @@ class GL { public static inline function activeTexture (texture:Int):Void { - #if js + #if flash + #elseif js context.activeTexture (texture); #else lime_gl_active_texture (texture); @@ -384,7 +385,8 @@ class GL { public static inline function attachShader (program:GLProgram, shader:GLShader):Void { - #if js + #if flash + #elseif js context.attachShader (program, shader); #else program.attach (shader); @@ -396,7 +398,8 @@ class GL { public static inline function bindAttribLocation (program:GLProgram, index:Int, name:String):Void { - #if js + #if flash + #elseif js context.bindAttribLocation (program, index, name); #else lime_gl_bind_attrib_location (program.id, index, name); @@ -407,7 +410,8 @@ class GL { public static inline function bindBuffer (target:Int, buffer:GLBuffer):Void { - #if js + #if flash + #elseif js context.bindBuffer (target, buffer); #else lime_gl_bind_buffer (target, buffer == null ? 0 : buffer.id); @@ -418,7 +422,8 @@ class GL { public static inline function bindFramebuffer (target:Int, framebuffer:GLFramebuffer):Void { - #if js + #if flash + #elseif js context.bindFramebuffer (target, framebuffer); #else lime_gl_bind_framebuffer (target, framebuffer == null ? 0 : framebuffer.id); @@ -429,7 +434,8 @@ class GL { public static inline function bindRenderbuffer (target:Int, renderbuffer:GLRenderbuffer):Void { - #if js + #if flash + #elseif js context.bindRenderbuffer (target, renderbuffer); #else lime_gl_bind_renderbuffer (target, renderbuffer == null ? 0 : renderbuffer.id); @@ -440,7 +446,8 @@ class GL { public static inline function bindTexture (target:Int, texture:GLTexture):Void { - #if js + #if flash + #elseif js context.bindTexture (target, texture); #else lime_gl_bind_texture(target, texture == null ? 0 : texture.id); @@ -451,7 +458,8 @@ class GL { public static inline function blendColor (red:Float, green:Float, blue:Float, alpha:Float):Void { - #if js + #if flash + #elseif js context.blendColor (red, green, blue, alpha); #else lime_gl_blend_color (red, green, blue, alpha); @@ -462,7 +470,8 @@ class GL { public static inline function blendEquation (mode:Int):Void { - #if js + #if flash + #elseif js context.blendEquation (mode); #else lime_gl_blend_equation (mode); @@ -473,7 +482,8 @@ class GL { public static inline function blendEquationSeparate (modeRGB:Int, modeAlpha:Int):Void { - #if js + #if flash + #elseif js context.blendEquationSeparate (modeRGB, modeAlpha); #else lime_gl_blend_equation_separate (modeRGB, modeAlpha); @@ -484,7 +494,8 @@ class GL { public static inline function blendFunc (sfactor:Int, dfactor:Int):Void { - #if js + #if flash + #elseif js context.blendFunc (sfactor, dfactor); #else lime_gl_blend_func (sfactor, dfactor); @@ -495,7 +506,8 @@ class GL { public static inline function blendFuncSeparate (srcRGB:Int, dstRGB:Int, srcAlpha:Int, dstAlpha:Int):Void { - #if js + #if flash + #elseif js context.blendFuncSeparate (srcRGB, dstRGB, srcAlpha, dstAlpha); #else lime_gl_blend_func_separate (srcRGB, dstRGB, srcAlpha, dstAlpha); @@ -506,7 +518,8 @@ class GL { public static inline function bufferData (target:Int, data:ArrayBufferView, usage:Int):Void { - #if js + #if flash + #elseif js context.bufferData (target, data, usage); #else lime_gl_buffer_data (target, data.getByteBuffer (), data.getStart (), data.getLength (), usage); @@ -517,7 +530,8 @@ class GL { public static inline function bufferSubData (target:Int, offset:Int, data:ArrayBufferView):Void { - #if js + #if flash + #elseif js context.bufferSubData (target, offset, data); #else lime_gl_buffer_sub_data (target, offset, data.getByteBuffer (), data.getStart (), data.getLength ()); @@ -528,7 +542,9 @@ class GL { public static inline function checkFramebufferStatus (target:Int):Int { - #if js + #if flash + return 0; + #elseif js return context.checkFramebufferStatus (target); #else return lime_gl_check_framebuffer_status (target); @@ -539,7 +555,8 @@ class GL { public static inline function clear (mask:Int):Void { - #if js + #if flash + #elseif js context.clear (mask); #else lime_gl_clear (mask); @@ -550,7 +567,8 @@ class GL { public static inline function clearColor (red:Float, green:Float, blue:Float, alpha:Float):Void { - #if js + #if flash + #elseif js context.clearColor (red, green, blue, alpha); #else lime_gl_clear_color (red, green, blue, alpha); @@ -561,7 +579,8 @@ class GL { public static inline function clearDepth (depth:Float):Void { - #if js + #if flash + #elseif js context.clearDepth (depth); #else lime_gl_clear_depth (depth); @@ -572,7 +591,8 @@ class GL { public static inline function clearStencil (s:Int):Void { - #if js + #if flash + #elseif js context.clearStencil (s); #else lime_gl_clear_stencil (s); @@ -583,7 +603,8 @@ class GL { public static inline function colorMask (red:Bool, green:Bool, blue:Bool, alpha:Bool):Void { - #if js + #if flash + #elseif js context.colorMask (red, green, blue, alpha); #else lime_gl_color_mask (red, green, blue, alpha); @@ -594,7 +615,8 @@ class GL { public static inline function compileShader (shader:GLShader):Void { - #if js + #if flash + #elseif js context.compileShader (shader); #else lime_gl_compile_shader (shader.id); @@ -605,7 +627,8 @@ class GL { public static inline function compressedTexImage2D (target:Int, level:Int, internalformat:Int, width:Int, height:Int, border:Int, data:ArrayBufferView):Void { - #if js + #if flash + #elseif js context.compressedTexImage2D (target, level, internalformat, width, height, border, data); #else lime_gl_compressed_tex_image_2d (target, level, internalformat, width, height, border, data == null ? null : data.getByteBuffer (), data == null ? null : data.getStart ()); @@ -616,7 +639,8 @@ class GL { public static inline function compressedTexSubImage2D (target:Int, level:Int, xoffset:Int, yoffset:Int, width:Int, height:Int, format:Int, data:ArrayBufferView):Void { - #if js + #if flash + #elseif js context.compressedTexSubImage2D (target, level, xoffset, yoffset, width, height, format, data); #else lime_gl_compressed_tex_sub_image_2d (target, level, xoffset, yoffset, width, height, format, data == null ? null : data.getByteBuffer (), data == null ? null : data.getStart ()); @@ -627,7 +651,8 @@ class GL { public static inline function copyTexImage2D (target:Int, level:Int, internalformat:Int, x:Int, y:Int, width:Int, height:Int, border:Int):Void { - #if js + #if flash + #elseif js context.copyTexImage2D (target, level, internalformat, x, y, width, height, border); #else lime_gl_copy_tex_image_2d (target, level, internalformat, x, y, width, height, border); @@ -638,7 +663,8 @@ class GL { public static inline function copyTexSubImage2D (target:Int, level:Int, xoffset:Int, yoffset:Int, x:Int, y:Int, width:Int, height:Int):Void { - #if js + #if flash + #elseif js context.copyTexSubImage2D (target, level, xoffset, yoffset, x, y, width, height); #else lime_gl_copy_tex_sub_image_2d (target, level, xoffset, yoffset, x, y, width, height); @@ -649,7 +675,9 @@ class GL { public static inline function createBuffer ():GLBuffer { - #if js + #if flash + return null; + #elseif js return context.createBuffer (); #else return new GLBuffer (version, lime_gl_create_buffer ()); @@ -660,7 +688,9 @@ class GL { public static inline function createFramebuffer ():GLFramebuffer { - #if js + #if flash + return null; + #elseif js return context.createFramebuffer (); #else return new GLFramebuffer (version, lime_gl_create_framebuffer ()); @@ -671,7 +701,9 @@ class GL { public static inline function createProgram ():GLProgram { - #if js + #if flash + return null; + #elseif js return context.createProgram (); #else return new GLProgram (version, lime_gl_create_program ()); @@ -682,7 +714,9 @@ class GL { public static inline function createRenderbuffer ():GLRenderbuffer { - #if js + #if flash + return null; + #elseif js return context.createRenderbuffer (); #else return new GLRenderbuffer (version, lime_gl_create_render_buffer ()); @@ -693,7 +727,9 @@ class GL { public static inline function createShader (type:Int):GLShader { - #if js + #if flash + return null; + #elseif js return context.createShader (type); #else return new GLShader (version, lime_gl_create_shader (type)); @@ -704,7 +740,9 @@ class GL { public static inline function createTexture ():GLTexture { - #if js + #if flash + return null; + #elseif js return context.createTexture (); #else return new GLTexture (version, lime_gl_create_texture ()); @@ -715,7 +753,8 @@ class GL { public static inline function cullFace (mode:Int):Void { - #if js + #if flash + #elseif js context.cullFace (mode); #else lime_gl_cull_face (mode); @@ -726,7 +765,8 @@ class GL { public static inline function deleteBuffer (buffer:GLBuffer):Void { - #if js + #if flash + #elseif js context.deleteBuffer (buffer); #else lime_gl_delete_buffer (buffer.id); @@ -738,7 +778,8 @@ class GL { public static inline function deleteFramebuffer (framebuffer:GLFramebuffer):Void { - #if js + #if flash + #elseif js context.deleteFramebuffer (framebuffer); #else lime_gl_delete_framebuffer (framebuffer.id); @@ -750,7 +791,8 @@ class GL { public static inline function deleteProgram (program:GLProgram):Void { - #if js + #if flash + #elseif js context.deleteProgram (program); #else lime_gl_delete_program (program.id); @@ -762,7 +804,8 @@ class GL { public static inline function deleteRenderbuffer (renderbuffer:GLRenderbuffer):Void { - #if js + #if flash + #elseif js context.deleteRenderbuffer (renderbuffer); #else lime_gl_delete_render_buffer (renderbuffer.id); @@ -774,7 +817,8 @@ class GL { public static inline function deleteShader (shader:GLShader):Void { - #if js + #if flash + #elseif js context.deleteShader (shader); #else lime_gl_delete_shader (shader.id); @@ -786,7 +830,8 @@ class GL { public static inline function deleteTexture (texture:GLTexture):Void { - #if js + #if flash + #elseif js context.deleteTexture (texture); #else lime_gl_delete_texture (texture.id); @@ -798,7 +843,8 @@ class GL { public static inline function depthFunc (func:Int):Void { - #if js + #if flash + #elseif js context.depthFunc (func); #else lime_gl_depth_func (func); @@ -809,7 +855,8 @@ class GL { public static inline function depthMask (flag:Bool):Void { - #if js + #if flash + #elseif js context.depthMask (flag); #else lime_gl_depth_mask (flag); @@ -820,7 +867,8 @@ class GL { public static inline function depthRange (zNear:Float, zFar:Float):Void { - #if js + #if flash + #elseif js context.depthRange (zNear, zFar); #else lime_gl_depth_range (zNear, zFar); @@ -831,7 +879,8 @@ class GL { public static inline function detachShader (program:GLProgram, shader:GLShader):Void { - #if js + #if flash + #elseif js context.detachShader (program, shader); #else lime_gl_detach_shader (program.id, shader.id); @@ -842,7 +891,8 @@ class GL { public static inline function disable (cap:Int):Void { - #if js + #if flash + #elseif js context.disable (cap); #else lime_gl_disable (cap); @@ -853,7 +903,8 @@ class GL { public static inline function disableVertexAttribArray (index:Int):Void { - #if js + #if flash + #elseif js context.disableVertexAttribArray (index); #else lime_gl_disable_vertex_attrib_array (index); @@ -864,7 +915,8 @@ class GL { public static inline function drawArrays (mode:Int, first:Int, count:Int):Void { - #if js + #if flash + #elseif js context.drawArrays (mode, first, count); #else lime_gl_draw_arrays (mode, first, count); @@ -875,7 +927,8 @@ class GL { public static inline function drawElements (mode:Int, count:Int, type:Int, offset:Int):Void { - #if js + #if flash + #elseif js context.drawElements (mode, count, type, offset); #else lime_gl_draw_elements (mode, count, type, offset); @@ -886,7 +939,8 @@ class GL { public static inline function enable (cap:Int):Void { - #if js + #if flash + #elseif js context.enable (cap); #else lime_gl_enable (cap); @@ -897,7 +951,8 @@ class GL { public static inline function enableVertexAttribArray (index:Int):Void { - #if js + #if flash + #elseif js context.enableVertexAttribArray (index); #else lime_gl_enable_vertex_attrib_array (index); @@ -908,7 +963,8 @@ class GL { public static inline function finish ():Void { - #if js + #if flash + #elseif js context.finish (); #else lime_gl_finish (); @@ -919,7 +975,8 @@ class GL { public static inline function flush ():Void { - #if js + #if flash + #elseif js context.flush (); #else lime_gl_flush (); @@ -930,7 +987,8 @@ class GL { public static inline function framebufferRenderbuffer (target:Int, attachment:Int, renderbuffertarget:Int, renderbuffer:GLRenderbuffer):Void { - #if js + #if flash + #elseif js context.framebufferRenderbuffer (target, attachment, renderbuffertarget, renderbuffer); #else lime_gl_framebuffer_renderbuffer (target, attachment, renderbuffertarget, renderbuffer.id); @@ -941,7 +999,8 @@ class GL { public static inline function framebufferTexture2D (target:Int, attachment:Int, textarget:Int, texture:GLTexture, level:Int):Void { - #if js + #if flash + #elseif js context.framebufferTexture2D (target, attachment, textarget, texture, level); #else lime_gl_framebuffer_texture2D (target, attachment, textarget, texture.id, level); @@ -952,7 +1011,8 @@ class GL { public static inline function frontFace (mode:Int):Void { - #if js + #if flash + #elseif js context.frontFace (mode); #else lime_gl_front_face (mode); @@ -963,7 +1023,8 @@ class GL { public static inline function generateMipmap (target:Int):Void { - #if js + #if flash + #elseif js context.generateMipmap (target); #else lime_gl_generate_mipmap (target); @@ -974,7 +1035,9 @@ class GL { public static inline function getActiveAttrib (program:GLProgram, index:Int):GLActiveInfo { - #if js + #if flash + return null; + #elseif js return context.getActiveAttrib (program, index); #else return lime_gl_get_active_attrib (program.id, index); @@ -985,7 +1048,9 @@ class GL { public static inline function getActiveUniform (program:GLProgram, index:Int):GLActiveInfo { - #if js + #if flash + return null; + #elseif js return context.getActiveUniform (program, index); #else return lime_gl_get_active_uniform (program.id, index); @@ -996,7 +1061,9 @@ class GL { public static inline function getAttachedShaders (program:GLProgram):Array { - #if js + #if flash + return null; + #elseif js return context.getAttachedShaders (program); #else return program.getShaders (); @@ -1007,7 +1074,9 @@ class GL { public static inline function getAttribLocation (program:GLProgram, name:String):Int { - #if js + #if flash + return 0; + #elseif js return context.getAttribLocation (program, name); #else return lime_gl_get_attrib_location (program.id, name); @@ -1018,7 +1087,9 @@ class GL { public static inline function getBufferParameter (target:Int, pname:Int):Int /*Dynamic*/ { - #if js + #if flash + return 0; + #elseif js return context.getBufferParameter (target, pname); #else return lime_gl_get_buffer_paramerter (target, pname); @@ -1029,7 +1100,9 @@ class GL { public static inline function getContextAttributes ():GLContextAttributes { - #if js + #if flash + return null; + #elseif js return context.getContextAttributes (); #else var base = lime_gl_get_context_attributes (); @@ -1043,7 +1116,9 @@ class GL { public static inline function getError ():Int { - #if js + #if flash + return 0; + #elseif js return context.getError (); #else return lime_gl_get_error (); @@ -1054,7 +1129,9 @@ class GL { public static inline function getExtension (name:String):Dynamic { - #if js + #if flash + return null; + #elseif js return context.getExtension (name); #else //todo?! @@ -1067,7 +1144,9 @@ class GL { public static inline function getFramebufferAttachmentParameter (target:Int, attachment:Int, pname:Int):Int /*Dynamic*/ { - #if js + #if flash + return 0; + #elseif js return context.getFramebufferAttachmentParameter (target, attachment, pname); #else return lime_gl_get_framebuffer_attachment_parameter (target, attachment, pname); @@ -1078,7 +1157,9 @@ class GL { public static inline function getParameter (pname:Int):Dynamic { - #if js + #if flash + return null; + #elseif js return context.getParameter (pname); #else return lime_gl_get_parameter (pname); @@ -1089,7 +1170,9 @@ class GL { public static inline function getProgramInfoLog (program:GLProgram):String { - #if js + #if flash + return null; + #elseif js return context.getProgramInfoLog (program); #else return lime_gl_get_program_info_log (program.id); @@ -1100,7 +1183,9 @@ class GL { public static inline function getProgramParameter (program:GLProgram, pname:Int):Int { - #if js + #if flash + return 0; + #elseif js return context.getProgramParameter (program, pname); #else return lime_gl_get_program_parameter (program.id, pname); @@ -1111,7 +1196,9 @@ class GL { public static inline function getRenderbufferParameter (target:Int, pname:Int):Int /*Dynamic*/ { - #if js + #if flash + return 0; + #elseif js return context.getRenderbufferParameter (target, pname); #else return lime_gl_get_render_buffer_parameter (target, pname); @@ -1122,7 +1209,9 @@ class GL { public static inline function getShaderInfoLog (shader:GLShader):String { - #if js + #if flash + return null; + #elseif js return context.getShaderInfoLog (shader); #else return lime_gl_get_shader_info_log (shader.id); @@ -1133,7 +1222,9 @@ class GL { public static inline function getShaderParameter (shader:GLShader, pname:Int):Int { - #if js + #if flash + return 0; + #elseif js return context.getShaderParameter (shader, pname); #else return lime_gl_get_shader_parameter (shader.id, pname); @@ -1144,7 +1235,9 @@ class GL { public static inline function getShaderPrecisionFormat (shadertype:Int, precisiontype:Int):GLShaderPrecisionFormat { - #if js + #if flash + return null; + #elseif js return context.getShaderPrecisionFormat (shadertype, precisiontype); #else return lime_gl_get_shader_precision_format (shadertype, precisiontype); @@ -1155,7 +1248,9 @@ class GL { public static inline function getShaderSource (shader:GLShader):String { - #if js + #if flash + return null; + #elseif js return context.getShaderSource (shader); #else return lime_gl_get_shader_source (shader.id); @@ -1166,7 +1261,9 @@ class GL { public static inline function getSupportedExtensions ():Array { - #if js + #if flash + return null; + #elseif js return context.getSupportedExtensions (); #else var result = new Array (); @@ -1179,7 +1276,9 @@ class GL { public static inline function getTexParameter (target:Int, pname:Int):Int /*Dynamic*/ { - #if js + #if flash + return 0; + #elseif js return context.getTexParameter (target, pname); #else return lime_gl_get_tex_parameter (target, pname); @@ -1190,7 +1289,9 @@ class GL { public static inline function getUniform (program:GLProgram, location:GLUniformLocation):Dynamic { - #if js + #if flash + return null; + #elseif js return context.getUniform (program, location); #else return lime_gl_get_uniform (program.id, location); @@ -1201,7 +1302,9 @@ class GL { public static inline function getUniformLocation (program:GLProgram, name:String):GLUniformLocation { - #if js + #if flash + return 0; + #elseif js return context.getUniformLocation (program, name); #else return lime_gl_get_uniform_location (program.id, name); @@ -1212,7 +1315,9 @@ class GL { public static inline function getVertexAttrib (index:Int, pname:Int):Int /*Dynamic*/ { - #if js + #if flash + return 0; + #elseif js return context.getVertexAttrib (index, pname); #else return lime_gl_get_vertex_attrib (index, pname); @@ -1223,7 +1328,9 @@ class GL { public static inline function getVertexAttribOffset (index:Int, pname:Int):Int { - #if js + #if flash + return 0; + #elseif js return context.getVertexAttribOffset (index, pname); #else return lime_gl_get_vertex_attrib_offset (index, pname); @@ -1234,7 +1341,8 @@ class GL { public static inline function hint (target:Int, mode:Int):Void { - #if js + #if flash + #elseif js context.hint (target, mode); #else lime_gl_hint (target, mode); @@ -1245,7 +1353,9 @@ class GL { public static inline function isBuffer (buffer:GLBuffer):Bool { - #if js + #if flash + return false; + #elseif js return context.isBuffer (buffer); #else return buffer != null && buffer.id > 0 && lime_gl_is_buffer (buffer.id); @@ -1260,7 +1370,9 @@ class GL { public static inline function isEnabled (cap:Int):Bool { - #if js + #if flash + return false; + #elseif js return context.isEnabled (cap); #else return lime_gl_is_enabled (cap); @@ -1271,7 +1383,9 @@ class GL { public static inline function isFramebuffer (framebuffer:GLFramebuffer):Bool { - #if js + #if flash + return false; + #elseif js return context.isFramebuffer (framebuffer); #else return framebuffer != null && framebuffer.id > 0 && lime_gl_is_framebuffer (framebuffer.id); @@ -1282,7 +1396,9 @@ class GL { public static inline function isProgram (program:GLProgram):Bool { - #if js + #if flash + return false; + #elseif js return context.isProgram (program); #else return program != null && program.id > 0 && lime_gl_is_program (program.id); @@ -1293,7 +1409,9 @@ class GL { public static inline function isRenderbuffer (renderbuffer:GLRenderbuffer):Bool { - #if js + #if flash + return false; + #elseif js return context.isRenderbuffer (renderbuffer); #else return renderbuffer != null && renderbuffer.id > 0 && lime_gl_is_renderbuffer (renderbuffer.id); @@ -1304,7 +1422,9 @@ class GL { public static inline function isShader (shader:GLShader):Bool { - #if js + #if flash + return false; + #elseif js return context.isShader (shader); #else return shader != null && shader.id > 0 && lime_gl_is_shader (shader.id); @@ -1315,7 +1435,9 @@ class GL { public static inline function isTexture (texture:GLTexture):Bool { - #if js + #if flash + return false; + #elseif js return context.isTexture (texture); #else return texture != null && texture.id > 0 && lime_gl_is_texture (texture.id); @@ -1326,7 +1448,8 @@ class GL { public static inline function lineWidth (width:Float):Void { - #if js + #if flash + #elseif js context.lineWidth (width); #else lime_gl_line_width (width); @@ -1337,7 +1460,8 @@ class GL { public static inline function linkProgram (program:GLProgram):Void { - #if js + #if flash + #elseif js context.linkProgram (program); #else lime_gl_link_program (program.id); @@ -1348,7 +1472,8 @@ class GL { public static inline function pixelStorei (pname:Int, param:Int):Void { - #if js + #if flash + #elseif js context.pixelStorei (pname, param); #else lime_gl_pixel_storei (pname, param); @@ -1359,7 +1484,8 @@ class GL { public static inline function polygonOffset (factor:Float, units:Float):Void { - #if js + #if flash + #elseif js context.polygonOffset (factor, units); #else lime_gl_polygon_offset (factor, units); @@ -1370,7 +1496,8 @@ class GL { public static inline function readPixels (x:Int, y:Int, width:Int, height:Int, format:Int, type:Int, pixels:ArrayBufferView):Void { - #if js + #if flash + #elseif js context.readPixels (x, y, width, height, format, type, pixels); #else lime_gl_read_pixels (x, y, width, height, format, type, pixels == null ? null : pixels.getByteBuffer (), pixels == null ? null : pixels.getStart ()); @@ -1381,7 +1508,8 @@ class GL { public static inline function renderbufferStorage (target:Int, internalformat:Int, width:Int, height:Int):Void { - #if js + #if flash + #elseif js context.renderbufferStorage (target, internalformat, width, height); #else lime_gl_renderbuffer_storage (target, internalformat, width, height); @@ -1392,7 +1520,8 @@ class GL { public static inline function sampleCoverage (value:Float, invert:Bool):Void { - #if js + #if flash + #elseif js context.sampleCoverage (value, invert); #else lime_gl_sample_coverage (value, invert); @@ -1403,7 +1532,8 @@ class GL { public static inline function scissor (x:Int, y:Int, width:Int, height:Int):Void { - #if js + #if flash + #elseif js context.scissor (x, y, width, height); #else lime_gl_scissor (x, y, width, height); @@ -1414,7 +1544,8 @@ class GL { public static inline function shaderSource (shader:GLShader, source:String):Void { - #if js + #if flash + #elseif js context.shaderSource (shader, source); #else lime_gl_shader_source (shader.id, source); @@ -1425,7 +1556,8 @@ class GL { public static inline function stencilFunc (func:Int, ref:Int, mask:Int):Void { - #if js + #if flash + #elseif js context.stencilFunc (func, ref, mask); #else lime_gl_stencil_func (func, ref, mask); @@ -1436,7 +1568,8 @@ class GL { public static inline function stencilFuncSeparate (face:Int, func:Int, ref:Int, mask:Int):Void { - #if js + #if flash + #elseif js context.stencilFuncSeparate (face, func, ref, mask); #else lime_gl_stencil_func_separate (face, func, ref, mask); @@ -1447,7 +1580,8 @@ class GL { public static inline function stencilMask (mask:Int):Void { - #if js + #if flash + #elseif js context.stencilMask (mask); #else lime_gl_stencil_mask (mask); @@ -1458,7 +1592,8 @@ class GL { public static inline function stencilMaskSeparate (face:Int, mask:Int):Void { - #if js + #if flash + #elseif js context.stencilMaskSeparate (face, mask); #else lime_gl_stencil_mask_separate (face, mask); @@ -1469,7 +1604,8 @@ class GL { public static inline function stencilOp (fail:Int, zfail:Int, zpass:Int):Void { - #if js + #if flash + #elseif js context.stencilOp (fail, zfail, zpass); #else lime_gl_stencil_op (fail, zfail, zpass); @@ -1480,7 +1616,8 @@ class GL { public static inline function stencilOpSeparate (face:Int, fail:Int, zfail:Int, zpass:Int):Void { - #if js + #if flash + #elseif js context.stencilOpSeparate (face, fail, zfail, zpass); #else lime_gl_stencil_op_separate (face, fail, zfail, zpass); @@ -1491,7 +1628,8 @@ class GL { public static inline function texImage2D (target:Int, level:Int, internalformat:Int, width:Int, height:Int, border:Int, format:Int, type:Int, pixels:ArrayBufferView):Void { - #if js + #if flash + #elseif js context.texImage2D (target, level, internalformat, width, height, border, format, type, pixels); #else lime_gl_tex_image_2d (target, level, internalformat, width, height, border, format, type, pixels == null ? null : pixels.getByteBuffer (), pixels == null ? null : pixels.getStart ()); @@ -1502,7 +1640,8 @@ class GL { public static inline function texParameterf (target:Int, pname:Int, param:Float):Void { - #if js + #if flash + #elseif js context.texParameterf (target, pname, param); #else lime_gl_tex_parameterf (target, pname, param); @@ -1513,7 +1652,8 @@ class GL { public static inline function texParameteri (target:Int, pname:Int, param:Int):Void { - #if js + #if flash + #elseif js context.texParameteri (target, pname, param); #else lime_gl_tex_parameteri (target, pname, param); @@ -1524,7 +1664,8 @@ class GL { public static inline function texSubImage2D (target:Int, level:Int, xoffset:Int, yoffset:Int, width:Int, height:Int, format:Int, type:Int, pixels:ArrayBufferView):Void { - #if js + #if flash + #elseif js context.texSubImage2D (target, level, xoffset, yoffset, width, height, format, type, pixels); #else lime_gl_tex_sub_image_2d (target, level, xoffset, yoffset, width, height, format, type, pixels == null ? null : pixels.getByteBuffer(), pixels == null ? null : pixels.getStart()); @@ -1535,7 +1676,8 @@ class GL { public static inline function uniform1f (location:GLUniformLocation, x:Float):Void { - #if js + #if flash + #elseif js context.uniform1f (location, x); #else lime_gl_uniform1f (location, x); @@ -1546,7 +1688,8 @@ class GL { public static inline function uniform1fv (location:GLUniformLocation, x:Float32Array):Void { - #if js + #if flash + #elseif js context.uniform1fv (location, x); #else lime_gl_uniform1fv (location, x.getByteBuffer ()); @@ -1557,7 +1700,8 @@ class GL { public static inline function uniform1i (location:GLUniformLocation, x:Int):Void { - #if js + #if flash + #elseif js context.uniform1i (location, x); #else lime_gl_uniform1i (location, x); @@ -1568,7 +1712,8 @@ class GL { public static inline function uniform1iv (location:GLUniformLocation, v:Int32Array):Void { - #if js + #if flash + #elseif js context.uniform1iv (location, v); #else lime_gl_uniform1iv (location, v.getByteBuffer ()); @@ -1579,7 +1724,8 @@ class GL { public static inline function uniform2f (location:GLUniformLocation, x:Float, y:Float):Void { - #if js + #if flash + #elseif js context.uniform2f (location, x, y); #else lime_gl_uniform2f (location, x, y); @@ -1590,7 +1736,8 @@ class GL { public static inline function uniform2fv (location:GLUniformLocation, v:Float32Array):Void { - #if js + #if flash + #elseif js context.uniform2fv (location, v); #else lime_gl_uniform2fv (location, v.getByteBuffer ()); @@ -1601,7 +1748,8 @@ class GL { public static inline function uniform2i (location:GLUniformLocation, x:Int, y:Int):Void { - #if js + #if flash + #elseif js context.uniform2i (location, x, y); #else lime_gl_uniform2i (location, x, y); @@ -1612,7 +1760,8 @@ class GL { public static inline function uniform2iv (location:GLUniformLocation, v:Int32Array):Void { - #if js + #if flash + #elseif js context.uniform2iv (location, v); #else lime_gl_uniform2iv (location, v.getByteBuffer ()); @@ -1623,7 +1772,8 @@ class GL { public static inline function uniform3f (location:GLUniformLocation, x:Float, y:Float, z:Float):Void { - #if js + #if flash + #elseif js context.uniform3f (location, x, y, z); #else lime_gl_uniform3f (location, x, y, z); @@ -1634,7 +1784,8 @@ class GL { public static inline function uniform3fv (location:GLUniformLocation, v:Float32Array):Void { - #if js + #if flash + #elseif js context.uniform3fv (location, v); #else lime_gl_uniform3fv (location, v.getByteBuffer ()); @@ -1645,7 +1796,8 @@ class GL { public static inline function uniform3i (location:GLUniformLocation, x:Int, y:Int, z:Int):Void { - #if js + #if flash + #elseif js context.uniform3i (location, x, y, z); #else lime_gl_uniform3i (location, x, y, z); @@ -1656,7 +1808,8 @@ class GL { public static inline function uniform3iv (location:GLUniformLocation, v:Int32Array):Void { - #if js + #if flash + #elseif js context.uniform3iv (location, v); #else lime_gl_uniform3iv (location, v.getByteBuffer ()); @@ -1667,7 +1820,8 @@ class GL { public static inline function uniform4f (location:GLUniformLocation, x:Float, y:Float, z:Float, w:Float):Void { - #if js + #if flash + #elseif js context.uniform4f (location, x, y, z, w); #else lime_gl_uniform4f (location, x, y, z, w); @@ -1678,7 +1832,8 @@ class GL { public static inline function uniform4fv (location:GLUniformLocation, v:Float32Array):Void { - #if js + #if flash + #elseif js context.uniform4fv (location, v); #else lime_gl_uniform4fv (location, v.getByteBuffer ()); @@ -1689,7 +1844,8 @@ class GL { public static inline function uniform4i (location:GLUniformLocation, x:Int, y:Int, z:Int, w:Int):Void { - #if js + #if flash + #elseif js context.uniform4i (location, x, y, z, w); #else lime_gl_uniform4i (location, x, y, z, w); @@ -1700,7 +1856,8 @@ class GL { public static inline function uniform4iv (location:GLUniformLocation, v:Int32Array):Void { - #if js + #if flash + #elseif js context.uniform4iv (location, v); #else lime_gl_uniform4iv (location, v.getByteBuffer ()); @@ -1711,7 +1868,8 @@ class GL { public static inline function uniformMatrix2fv (location:GLUniformLocation, transpose:Bool, v:Float32Array):Void { - #if js + #if flash + #elseif js context.uniformMatrix2fv (location, transpose, v); #else lime_gl_uniform_matrix (location, transpose, v.getByteBuffer (), 2); @@ -1722,7 +1880,8 @@ class GL { public static inline function uniformMatrix3fv (location:GLUniformLocation, transpose:Bool, v:Float32Array):Void { - #if js + #if flash + #elseif js context.uniformMatrix3fv (location, transpose, v); #else lime_gl_uniform_matrix (location, transpose, v.getByteBuffer (), 3); @@ -1733,7 +1892,8 @@ class GL { public static inline function uniformMatrix4fv (location:GLUniformLocation, transpose:Bool, v:Float32Array):Void { - #if js + #if flash + #elseif js context.uniformMatrix4fv (location, transpose, v); #else lime_gl_uniform_matrix (location, transpose, v.getByteBuffer (), 4); @@ -1751,7 +1911,8 @@ class GL { public static inline function useProgram (program:GLProgram):Void { - #if js + #if flash + #elseif js context.useProgram (program); #else lime_gl_use_program (program == null ? 0 : program.id); @@ -1762,7 +1923,8 @@ class GL { public static inline function validateProgram (program:GLProgram):Void { - #if js + #if flash + #elseif js context.validateProgram (program); #else lime_gl_validate_program (program.id); @@ -1773,7 +1935,8 @@ class GL { public static inline function vertexAttrib1f (indx:Int, x:Float):Void { - #if js + #if flash + #elseif js context.vertexAttrib1f (indx, x); #else lime_gl_vertex_attrib1f (indx, x); @@ -1784,7 +1947,8 @@ class GL { public static inline function vertexAttrib1fv (indx:Int, values:Float32Array):Void { - #if js + #if flash + #elseif js context.vertexAttrib1fv (indx, values); #else lime_gl_vertex_attrib1fv (indx, values.getByteBuffer ()); @@ -1795,7 +1959,8 @@ class GL { public static inline function vertexAttrib2f (indx:Int, x:Float, y:Float):Void { - #if js + #if flash + #elseif js context.vertexAttrib2f (indx, x, y); #else lime_gl_vertex_attrib2f (indx, x, y); @@ -1806,7 +1971,8 @@ class GL { public static inline function vertexAttrib2fv (indx:Int, values:Float32Array):Void { - #if js + #if flash + #elseif js context.vertexAttrib2fv (indx, values); #else lime_gl_vertex_attrib2fv (indx, values.getByteBuffer()); @@ -1817,7 +1983,8 @@ class GL { public static inline function vertexAttrib3f (indx:Int, x:Float, y:Float, z:Float):Void { - #if js + #if flash + #elseif js context.vertexAttrib3f (indx, x, y, z); #else lime_gl_vertex_attrib3f (indx, x, y, z); @@ -1828,7 +1995,8 @@ class GL { public static inline function vertexAttrib3fv (indx:Int, values:Float32Array):Void { - #if js + #if flash + #elseif js context.vertexAttrib3fv (indx, values); #else lime_gl_vertex_attrib3fv (indx, values.getByteBuffer ()); @@ -1839,7 +2007,8 @@ class GL { public static inline function vertexAttrib4f (indx:Int, x:Float, y:Float, z:Float, w:Float):Void { - #if js + #if flash + #elseif js context.vertexAttrib4f (indx, x, y, z, w); #else lime_gl_vertex_attrib4f (indx, x, y, z, w); @@ -1850,7 +2019,8 @@ class GL { public static inline function vertexAttrib4fv (indx:Int, values:Float32Array):Void { - #if js + #if flash + #elseif js context.vertexAttrib4fv (indx, values); #else lime_gl_vertex_attrib4fv (indx, values.getByteBuffer ()); @@ -1861,7 +2031,8 @@ class GL { public static inline function vertexAttribPointer (indx:Int, size:Int, type:Int, normalized:Bool, stride:Int, offset:Int):Void { - #if js + #if flash + #elseif js context.vertexAttribPointer (indx, size, type, normalized, stride, offset); #else lime_gl_vertex_attrib_pointer (indx, size, type, normalized, stride, offset); @@ -1872,7 +2043,8 @@ class GL { public static inline function viewport (x:Int, y:Int, width:Int, height:Int):Void { - #if js + #if flash + #elseif js context.viewport (x, y, width, height); #else lime_gl_viewport (x, y, width, height); diff --git a/lime/utils/ArrayBuffer.hx b/lime/utils/ArrayBuffer.hx index f02372bfb..7c8b2d61b 100644 --- a/lime/utils/ArrayBuffer.hx +++ b/lime/utils/ArrayBuffer.hx @@ -1,10 +1,8 @@ package lime.utils; + + #if js typedef ArrayBuffer = js.html.ArrayBuffer; #else - - typedef ArrayBuffer = lime.utils.ByteArray; - - #end \ No newline at end of file diff --git a/lime/utils/ArrayBufferView.hx b/lime/utils/ArrayBufferView.hx index 677920cf8..ec7f521b3 100644 --- a/lime/utils/ArrayBufferView.hx +++ b/lime/utils/ArrayBufferView.hx @@ -15,228 +15,266 @@ import haxe.io.BytesData; class ArrayBufferView implements IMemoryRange { - public var buffer (default, null) : ByteArray; - public var byteOffset (default, null) : Int; - public var byteLength (default, null) : Int; + public var buffer (default, null):ByteArray; + public var byteOffset (default, null):Int; + public var byteLength (default, null):Int; #if cpp - var bytes : BytesData; + private var bytes:BytesData; #end - function new( lengthOrBuffer:Dynamic, byteOffset:Int = 0, length:Null = null ) { + function new (lengthOrBuffer:Dynamic, byteOffset:UInt = 0, length:Null = null) { - if (Std.is(lengthOrBuffer, Int)) { + if (Std.is (lengthOrBuffer, Int)) { - byteLength = Std.int(lengthOrBuffer); + byteLength = Std.int (lengthOrBuffer); this.byteOffset = 0; - buffer = new ArrayBuffer(Std.int(lengthOrBuffer)); + + buffer = new ArrayBuffer (#if !flash byteLength #end); + + #if flash + while (byteLength > 0) { buffer.writeByte (0); } + buffer.position = 0; + #end } else { buffer = lengthOrBuffer; if (buffer == null) { + throw "Invalid input buffer"; + } this.byteOffset = byteOffset; if (byteOffset > buffer.length) { + throw "Invalid starting position"; + } if (length == null) { + byteLength = buffer.length - byteOffset; + } else { + byteLength = length; if (byteLength + byteOffset > buffer.length) { + throw "Invalid buffer length"; + } + } } + #if !flash buffer.bigEndian = false; + #end #if cpp - bytes = buffer.getData(); + bytes = buffer.getData (); #end } - public function getByteBuffer() : ByteArray { + + public function getByteBuffer ():ByteArray { return buffer; } - public function getLength() : Int { + + public inline function getFloat32 (position:Int):Float { + + #if cpp + untyped return __global__.__hxcpp_memory_get_float (bytes, position + byteOffset); + #else + buffer.position = position + byteOffset; + return buffer.readFloat (); + #end + + } + + + public inline function getInt8 (position:Int):Int { + + #if cpp + return untyped __global__.__hxcpp_memory_get_byte (bytes, position + byteOffset); + #else + buffer.position = position + byteOffset; + return buffer.readByte (); + #end + + } + + + public inline function getInt16 (position:Int):Int { + + #if cpp + untyped return __global__.__hxcpp_memory_get_i16 (bytes, position + byteOffset); + #else + buffer.position = position + byteOffset; + return buffer.readShort (); + #end + + } + + + public inline function getInt32 (position:Int):Int { + + #if cpp + untyped return __global__.__hxcpp_memory_get_i32 (bytes, position + byteOffset); + #else + buffer.position = position + byteOffset; + return buffer.readInt (); + #end + + } + + + public function getLength ():Int { return byteLength; } - public function getStart() : Int { + + public function getStart ():Int { return byteOffset; } - inline public function getInt8( position:Int ) : Int { + + public inline function getUInt8 (position:Int):Int { #if cpp - return untyped __global__.__hxcpp_memory_get_byte(bytes, position + byteOffset); + return untyped __global__.__hxcpp_memory_get_byte (bytes, position + byteOffset) & 0xff; #else buffer.position = position + byteOffset; - return buffer.readByte(); + return buffer.readUnsignedByte (); #end } - inline public function setInt8( position:Int, value:Int ) { + + public inline function getUInt16 (position:Int):Int { #if cpp - untyped __global__.__hxcpp_memory_set_byte(bytes, position + byteOffset, value); + untyped return __global__.__hxcpp_memory_get_ui16 (bytes, position + byteOffset) & 0xffff; #else buffer.position = position + byteOffset; - buffer.writeByte(value); + return buffer.readUnsignedShort (); #end } - inline public function getUInt8( position:Int ) : Int { + + public inline function getUInt32 (position:Int):Int { #if cpp - return untyped __global__.__hxcpp_memory_get_byte(bytes, position + byteOffset) & 0xff; + untyped return __global__.__hxcpp_memory_get_ui32 (bytes, position + byteOffset); #else buffer.position = position + byteOffset; - return buffer.readUnsignedByte(); + return buffer.readUnsignedInt (); #end } - inline public function setUInt8( position:Int, value:Int ) { + + public inline function setFloat32 (position:Int, value:Float):Void { #if cpp - untyped __global__.__hxcpp_memory_set_byte(bytes, position + byteOffset, value); + untyped __global__.__hxcpp_memory_set_float (bytes, position + byteOffset, value); #else buffer.position = position + byteOffset; - buffer.writeByte(value); + buffer.writeFloat (value); #end } - inline public function getInt16( position:Int ) : Int { + + public inline function setInt8 (position:Int, value:Int):Void { #if cpp - untyped return __global__.__hxcpp_memory_get_i16(bytes, position + byteOffset); + untyped __global__.__hxcpp_memory_set_byte (bytes, position + byteOffset, value); #else buffer.position = position + byteOffset; - return buffer.readShort(); + buffer.writeByte (value); #end } - inline public function setInt16( position:Int, value:Int ) { + + public inline function setInt16 (position:Int, value:Int):Void { #if cpp - untyped __global__.__hxcpp_memory_set_i16(bytes, position + byteOffset, value); + untyped __global__.__hxcpp_memory_set_i16 (bytes, position + byteOffset, value); #else buffer.position = position + byteOffset; - buffer.writeShort(Std.int(value)); + buffer.writeShort (Std.int (value)); #end } - inline public function getUInt16( position:Int ) : Int { + + public inline function setInt32 (position:Int, value:Int):Void { #if cpp - untyped return __global__.__hxcpp_memory_get_ui16(bytes, position + byteOffset) & 0xffff; + untyped __global__.__hxcpp_memory_set_i32 (bytes, position + byteOffset, value); #else buffer.position = position + byteOffset; - return buffer.readUnsignedShort(); + buffer.writeInt (Std.int (value)); #end } - inline public function setUInt16( position:Int, value:Int ) { + + public inline function setUInt8 (position:Int, value:Int):Void { #if cpp - untyped __global__.__hxcpp_memory_set_ui16(bytes, position + byteOffset, value); + untyped __global__.__hxcpp_memory_set_byte (bytes, position + byteOffset, value); #else buffer.position = position + byteOffset; - buffer.writeShort(Std.int(value)); + buffer.writeByte (value); #end } - inline public function getInt32( position:Int ) : Int { + + + public inline function setUInt16 (position:Int, value:Int):Void { #if cpp - untyped return __global__.__hxcpp_memory_get_i32(bytes, position + byteOffset); + untyped __global__.__hxcpp_memory_set_ui16 (bytes, position + byteOffset, value); #else buffer.position = position + byteOffset; - return buffer.readInt(); + buffer.writeShort (Std.int (value)); #end } - inline public function setInt32( position:Int, value:Int ) { + + + public inline function setUInt32 (position:Int, value:Int):Void { #if cpp - untyped __global__.__hxcpp_memory_set_i32(bytes, position + byteOffset, value); + untyped __global__.__hxcpp_memory_set_ui32 (bytes, position + byteOffset, value); #else buffer.position = position + byteOffset; - buffer.writeInt(Std.int(value)); + buffer.writeUnsignedInt (Std.int (value)); #end } - inline public function getUInt32( position:Int ) : Int { - - #if cpp - untyped return __global__.__hxcpp_memory_get_ui32(bytes, position + byteOffset); - #else - buffer.position = position + byteOffset; - return buffer.readUnsignedInt(); - #end - - } - - inline public function setUInt32( position:Int, value:Int ) { - - #if cpp - untyped __global__.__hxcpp_memory_set_ui32(bytes, position + byteOffset, value); - #else - buffer.position = position + byteOffset; - buffer.writeUnsignedInt(Std.int(value)); - #end - - } - - inline public function getFloat32( position:Int ) : Float { - - #if cpp - untyped return __global__.__hxcpp_memory_get_float(bytes, position + byteOffset); - #else - buffer.position = position + byteOffset; - return buffer.readFloat(); - #end - - } - - inline public function setFloat32( position:Int, value:Float ) { - - #if cpp - untyped __global__.__hxcpp_memory_set_float(bytes, position + byteOffset, value); - #else - buffer.position = position + byteOffset; - buffer.writeFloat(value); - #end - - } } diff --git a/lime/utils/ByteArray.hx b/lime/utils/ByteArray.hx index 8750e2aab..04d12f93e 100644 --- a/lime/utils/ByteArray.hx +++ b/lime/utils/ByteArray.hx @@ -1,4 +1,8 @@ package lime.utils; +#if flash +typedef ByteArray = flash.utils.ByteArray; +#else + import lime.utils.IMemoryRange; import haxe.io.Bytes; @@ -8,7 +12,7 @@ import haxe.io.BytesData; import lime.utils.IDataInput; import lime.system.System; -#if !lime_html5 +#if !js #if neko import neko.Lib; @@ -82,10 +86,10 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput var bytes = function(inArray:ByteArray) { return inArray==null ? null : inArray.b; } var slen = function(inArray:ByteArray) { return inArray == null ? 0 : inArray.length; } - #if !lime_html5 + #if !js var init = System.load("lime", "lime_byte_array_init", 4); init(factory, slen, resize, bytes); - #end //lime_html5 + #end } #end @@ -117,7 +121,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput length = 0; } -#if !lime_html5 +#if !js //todo- sven /*public function compress(algorithm:CompressionAlgorithm = null) @@ -163,7 +167,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput compress(CompressionAlgorithm.DEFLATE); }*/ -#end //!lime_html5 +#end //!js /** @private */ private function ensureElem(inSize:Int, inUpdateLenght:Bool) { var len = inSize + 1; @@ -198,7 +202,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput public function getByteBuffer():ByteArray { return this; } public function getStart():Int { return 0; } -#if !lime_html5 +#if !js public function inflate() { @@ -206,7 +210,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput } -#end //!lime_html5 +#end //!js private inline function limeFromBytes(inBytes:Bytes):Void { @@ -255,7 +259,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput public function readDouble():Float { - #if !lime_html5 + #if !js if (position + 8 > length) ThrowEOFi(); @@ -269,7 +273,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput position += 8; return _double_of_bytes(bytes.b, bigEndian); - #end //!lime_html5 + #end //!js return 0.0; } @@ -282,7 +286,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput public function readFloat():Float { - #if !lime_html5 + #if !js if (position + 4 > length) ThrowEOFi(); @@ -296,7 +300,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput position += 4; return _float_of_bytes(bytes.b, bigEndian); - #end //!lime_html5 + #end //!js return 0.0; } @@ -425,7 +429,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput return 0; } -#if !lime_html5 +#if !js //todo sven /*public function uncompress(algorithm:CompressionAlgorithm = null):Void @@ -468,7 +472,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput #end }*/ -#end //!lime_html5 +#end //!js /** @private */ inline function write_uncheck(inByte:Int) { #if cpp @@ -505,7 +509,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput public function writeDouble(x:Float) { - #if !lime_html5 + #if !js #if neko var bytes = new Bytes(8, _double_bytes(x, bigEndian)); @@ -515,7 +519,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput writeBytes(bytes); - #end //!lime_html5 + #end //!js } #if !no_lime_io @@ -527,7 +531,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput public function writeFloat(x:Float) { - #if !lime_html5 + #if !js #if neko var bytes = new Bytes(4, _float_bytes(x, bigEndian)); @@ -537,7 +541,7 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput writeBytes(bytes); - #end //!lime_html5 + #end //!js } public function writeInt(value:Int) @@ -624,3 +628,6 @@ class ByteArray extends Bytes implements ArrayAccess implements IDataInput private static var lime_lzma_encode = System.load("lime", "lime_lzma_encode", 1); private static var lime_lzma_decode = System.load("lime", "lime_lzma_decode", 1); } + + +#end \ No newline at end of file diff --git a/lime/utils/Float32Array.hx b/lime/utils/Float32Array.hx index 13ba0130c..94e2633bf 100644 --- a/lime/utils/Float32Array.hx +++ b/lime/utils/Float32Array.hx @@ -86,7 +86,7 @@ class Float32Array extends ArrayBufferView implements ArrayAccess { } - public function set (bufferOrArray:Dynamic, offset:Int = 0) { + public function set (bufferOrArray:Dynamic, offset:Int = 0):Void { if (Std.is (bufferOrArray, Array)) { diff --git a/lime/utils/IDataInput.hx b/lime/utils/IDataInput.hx index fd7a7ad8e..f1ae876f3 100644 --- a/lime/utils/IDataInput.hx +++ b/lime/utils/IDataInput.hx @@ -2,30 +2,32 @@ package lime.utils; interface IDataInput { - - public var bytesAvailable(get_bytesAvailable, null):Int; - public var endian(get_endian, set_endian):String; - - public function readBoolean():Bool; - public function readByte():Int; - public function readBytes(outData:ByteArray, inOffset:Int = 0, inLen:Int = 0):Void; - public function readDouble():Float; - public function readFloat():Float; - public function readInt():Int; - - // not implemented ... - //var objectEncoding : UInt; - //public function readMultiByte(length : Int, charSet:String):String; - //public function readObject():Dynamic; - public function readShort():Int; - public function readUnsignedByte():Int; - public function readUnsignedInt():Int; - public function readUnsignedShort():Int; - public function readUTF():String; - public function readUTFBytes(inLen:Int):String; - - private function get_bytesAvailable():Int; - private function get_endian():String; - private function set_endian(s:String):String; - -} //IDataInput + + + public var bytesAvailable (get_bytesAvailable, null):Int; + public var endian (get_endian, set_endian):String; + + public function readBoolean ():Bool; + public function readByte ():Int; + public function readBytes (outData:ByteArray, inOffset:Int = 0, inLen:Int = 0):Void; + public function readDouble ():Float; + public function readFloat ():Float; + public function readInt ():Int; + + // not implemented ... + //var objectEncoding : UInt; + //public function readMultiByte (length : Int, charSet:String):String; + //public function readObject ():Dynamic; + public function readShort ():Int; + public function readUnsignedByte ():Int; + public function readUnsignedInt ():Int; + public function readUnsignedShort ():Int; + public function readUTF ():String; + public function readUTFBytes (inLen:Int):String; + + private function get_bytesAvailable ():Int; + private function get_endian ():String; + private function set_endian (s:String):String; + + +} \ No newline at end of file diff --git a/lime/utils/IMemoryRange.hx b/lime/utils/IMemoryRange.hx index 7486c1989..097b7502c 100644 --- a/lime/utils/IMemoryRange.hx +++ b/lime/utils/IMemoryRange.hx @@ -1,11 +1,15 @@ package lime.utils; + import lime.utils.ByteArray; -interface IMemoryRange { - - public function getByteBuffer ():ByteArray; - public function getStart ():Int; - public function getLength ():Int; +interface IMemoryRange { + + + public function getByteBuffer ():ByteArray; + public function getStart ():Int; + public function getLength ():Int; + + } \ No newline at end of file diff --git a/lime/utils/Int16Array.hx b/lime/utils/Int16Array.hx index 96e2e3ca4..d087da34f 100644 --- a/lime/utils/Int16Array.hx +++ b/lime/utils/Int16Array.hx @@ -86,7 +86,7 @@ class Int16Array extends ArrayBufferView implements ArrayAccess { } - public function set (bufferOrArray:Dynamic, offset:Int = 0) { + public function set (bufferOrArray:Dynamic, offset:Int = 0):Void { if (Std.is (bufferOrArray, Array)) { diff --git a/lime/utils/Int32Array.hx b/lime/utils/Int32Array.hx index b5e95a77a..7cd526211 100644 --- a/lime/utils/Int32Array.hx +++ b/lime/utils/Int32Array.hx @@ -86,7 +86,7 @@ class Int32Array extends ArrayBufferView implements ArrayAccess { } - public function set (bufferOrArray:Dynamic, offset:Int = 0) { + public function set (bufferOrArray:Dynamic, offset:Int = 0):Void { if (Std.is (bufferOrArray, Array)) { diff --git a/lime/utils/Int8Array.hx b/lime/utils/Int8Array.hx index d3ac74807..81bf6ae48 100644 --- a/lime/utils/Int8Array.hx +++ b/lime/utils/Int8Array.hx @@ -73,7 +73,7 @@ class Int8Array extends ArrayBufferView implements ArrayAccess { } - public function set (bufferOrArray:Dynamic, offset:Int = 0) { + public function set (bufferOrArray:Dynamic, offset:Int = 0):Void { if (Std.is(bufferOrArray, Array)) { diff --git a/lime/utils/UInt16Array.hx b/lime/utils/UInt16Array.hx index 4697c23e6..0cf33e70a 100644 --- a/lime/utils/UInt16Array.hx +++ b/lime/utils/UInt16Array.hx @@ -86,7 +86,7 @@ class UInt16Array extends ArrayBufferView implements ArrayAccess { } - public function set (bufferOrArray:Dynamic, offset:Int = 0) { + public function set (bufferOrArray:Dynamic, offset:Int = 0):Void { if (Std.is (bufferOrArray, Array)) { diff --git a/lime/utils/UInt32Array.hx b/lime/utils/UInt32Array.hx index 762b56286..f15a95df2 100644 --- a/lime/utils/UInt32Array.hx +++ b/lime/utils/UInt32Array.hx @@ -86,7 +86,7 @@ class UInt32Array extends ArrayBufferView implements ArrayAccess { } - public function set (bufferOrArray:Dynamic, offset:Int = 0) { + public function set (bufferOrArray:Dynamic, offset:Int = 0):Void { if (Std.is (bufferOrArray, Array)) { diff --git a/lime/utils/UInt8Array.hx b/lime/utils/UInt8Array.hx index b71c7fe49..a770e1ef4 100644 --- a/lime/utils/UInt8Array.hx +++ b/lime/utils/UInt8Array.hx @@ -74,7 +74,7 @@ class UInt8Array extends ArrayBufferView implements ArrayAccess { } - public function set (bufferOrArray:Dynamic, offset:Int = 0) { + public function set (bufferOrArray:Dynamic, offset:Int = 0):Void { if (Std.is (bufferOrArray, Array)) { diff --git a/templates/flash/haxe/ApplicationMain.hx b/templates/flash/haxe/ApplicationMain.hx new file mode 100644 index 000000000..ce6b3fba2 --- /dev/null +++ b/templates/flash/haxe/ApplicationMain.hx @@ -0,0 +1,42 @@ +import ::APP_MAIN::; + + +class ApplicationMain { + + + private var app:lime.app.Application; + + + public static function main () { + + var app = new ::APP_MAIN:: (); + + var config:lime.app.Config = { + + antialiasing: Std.int (::WIN_ANTIALIASING::), + borderless: ::WIN_BORDERLESS::, + depthBuffer: ::WIN_DEPTH_BUFFER::, + fps: Std.int (::WIN_FPS::), + fullscreen: ::WIN_FULLSCREEN::, + height: Std.int (::WIN_HEIGHT::), + orientation: "::WIN_ORIENTATION::", + resizable: ::WIN_RESIZABLE::, + stencilBuffer: ::WIN_STENCIL_BUFFER::, + title: "::APP_TITLE::", + vsync: ::WIN_VSYNC::, + width: Std.int (::WIN_WIDTH::), + + } + + app.create (config); + + var result = app.exec (); + + #if sys + Sys.exit (result); + #end + + } + + +} \ No newline at end of file diff --git a/templates/flash/hxml/debug.hxml b/templates/flash/hxml/debug.hxml new file mode 100644 index 000000000..7a203638c --- /dev/null +++ b/templates/flash/hxml/debug.hxml @@ -0,0 +1,6 @@ +-main ApplicationMain ::HAXE_FLAGS:: +-swf-version ::SWF_VERSION:: +-swf ::BUILD_DIR::/flash/bin/::APP_FILE::.swf +-swf-header ::if (WIN_WIDTH == "0")::800::else::::WIN_WIDTH::::end:::::if (WIN_HEIGHT == "0")::500::else::::WIN_HEIGHT::::end:::::WIN_FPS:::::WIN_FLASHBACKGROUND:: +-cp ::BUILD_DIR::/flash/haxe +-debug \ No newline at end of file diff --git a/templates/flash/hxml/final.hxml b/templates/flash/hxml/final.hxml new file mode 100644 index 000000000..41579051b --- /dev/null +++ b/templates/flash/hxml/final.hxml @@ -0,0 +1,6 @@ +-main ApplicationMain ::HAXE_FLAGS:: +-swf-version ::SWF_VERSION:: +-swf ::BUILD_DIR::/flash/bin/::APP_FILE::.swf +-swf-header ::if (WIN_WIDTH == "0")::800::else::::WIN_WIDTH::::end:::::if (WIN_HEIGHT == "0")::500::else::::WIN_HEIGHT::::end:::::WIN_FPS:::::WIN_FLASHBACKGROUND:: +-cp ::BUILD_DIR::/flash/haxe +-D final \ No newline at end of file diff --git a/templates/flash/hxml/release.hxml b/templates/flash/hxml/release.hxml new file mode 100644 index 000000000..ed7c6116e --- /dev/null +++ b/templates/flash/hxml/release.hxml @@ -0,0 +1,5 @@ +-main ApplicationMain ::HAXE_FLAGS:: +-swf-version ::SWF_VERSION:: +-swf ::BUILD_DIR::/flash/bin/::APP_FILE::.swf +-swf-header ::if (WIN_WIDTH == "0")::800::else::::WIN_WIDTH::::end:::::if (WIN_HEIGHT == "0")::500::else::::WIN_HEIGHT::::end:::::WIN_FPS:::::WIN_FLASHBACKGROUND:: +-cp ::BUILD_DIR::/flash/haxe \ No newline at end of file diff --git a/templates/flash/templates/air/application.xml b/templates/flash/templates/air/application.xml new file mode 100644 index 000000000..377711ea5 --- /dev/null +++ b/templates/flash/templates/air/application.xml @@ -0,0 +1,59 @@ + + + ::APP_PACKAGE:: + ::APP_VERSION:: + ::APP_FILE:: + ::APP_TITLE:: + ::APP_DESCRIPTION:: + + + ::APP_TITLE:: + ::APP_FILE::.swf + standard + false + true + true + false + ::WIN_RESIZABLE:: + + + ::APP_COMPANY::/::APP_TITLE:: + ::APP_TITLE:: + + false + false + + + + + + + + + + ]]> + + + \ No newline at end of file diff --git a/templates/flash/templates/chrome/expressInstall.swf b/templates/flash/templates/chrome/expressInstall.swf new file mode 100644 index 000000000..0fbf8fca9 Binary files /dev/null and b/templates/flash/templates/chrome/expressInstall.swf differ diff --git a/templates/flash/templates/chrome/index.html b/templates/flash/templates/chrome/index.html new file mode 100644 index 000000000..e7347ac4b --- /dev/null +++ b/templates/flash/templates/chrome/index.html @@ -0,0 +1,28 @@ + + + + + + ::APP_TITLE:: + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/templates/flash/templates/chrome/manifest.json b/templates/flash/templates/chrome/manifest.json new file mode 100644 index 000000000..16efc6c1e --- /dev/null +++ b/templates/flash/templates/chrome/manifest.json @@ -0,0 +1,14 @@ +{ + "name": "::APP_TITLE::", + "description": "::APP_DESCRIPTION::", + "version": "::APP_VERSION::", + "app": { + "launch": { + "local_path": "index.html" + } + }, + "icons": { + "16": "icon_16.png", + "128": "icon_128.png" + } +} \ No newline at end of file diff --git a/templates/flash/templates/chrome/swfobject.js b/templates/flash/templates/chrome/swfobject.js new file mode 100644 index 000000000..8eafe9dd8 --- /dev/null +++ b/templates/flash/templates/chrome/swfobject.js @@ -0,0 +1,4 @@ +/* SWFObject v2.2 + is released under the MIT License +*/ +var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab + ::APP_TITLE:: + ::APP_DESCRIPTION:: + ::if (WIN_WIDTH == "0")::800::else::::WIN_WIDTH::::end:: + ::if (WIN_HEIGHT == "0")::500::else::::WIN_HEIGHT::::end:: + + ::APP_COMPANY:: + + ::APP_COMPANY:: + + + icon_128.png + icon_64.png + icon_32.png + icon_16.png + + ::APP_PACKAGE_HOST:: + ::APP_PACKAGE_NAME:: + ::REVISION_DATE:: + + \ No newline at end of file diff --git a/templates/flash/templates/opera/expressInstall.swf b/templates/flash/templates/opera/expressInstall.swf new file mode 100644 index 000000000..0fbf8fca9 Binary files /dev/null and b/templates/flash/templates/opera/expressInstall.swf differ diff --git a/templates/flash/templates/opera/index.html b/templates/flash/templates/opera/index.html new file mode 100644 index 000000000..e7347ac4b --- /dev/null +++ b/templates/flash/templates/opera/index.html @@ -0,0 +1,28 @@ + + + + + + ::APP_TITLE:: + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/templates/flash/templates/opera/swfobject.js b/templates/flash/templates/opera/swfobject.js new file mode 100644 index 000000000..8eafe9dd8 --- /dev/null +++ b/templates/flash/templates/opera/swfobject.js @@ -0,0 +1,4 @@ +/* SWFObject v2.2 + is released under the MIT License +*/ +var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab + + + + + ::APP_TITLE:: + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/templates/flash/templates/web/swfobject.js b/templates/flash/templates/web/swfobject.js new file mode 100644 index 000000000..8eafe9dd8 --- /dev/null +++ b/templates/flash/templates/web/swfobject.js @@ -0,0 +1,4 @@ +/* SWFObject v2.2 + is released under the MIT License +*/ +var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab