/src/aerys/minko/render/shader/binding/ConstantBinder.as
ActionScript | 52 lines | 36 code | 5 blank | 11 comment | 0 complexity | 99f33be0abdd5448919b0c2a960a3a6d MD5 | raw file
1package aerys.minko.render.shader.binding
2{
3 import aerys.minko.render.resource.texture.ITextureResource;
4 import aerys.minko.render.shader.compiler.Serializer;
5
6 import flash.utils.Dictionary;
7
8 /**
9 * @private
10 * @author Romain Gilliotte
11 *
12 */
13 public class ConstantBinder implements IBinder
14 {
15 private var _bindingName : String;
16 private var _offset : uint;
17 private var _size : uint;
18 private var _isVertexShader : Boolean;
19
20 /**
21 * @inheritDoc
22 */
23 public function get bindingName() : String
24 {
25 return _bindingName;
26 }
27
28 public function ConstantBinder(name : String,
29 offset : uint,
30 size : uint,
31 isVertexShader : Boolean)
32 {
33 _bindingName = name;
34 _offset = offset;
35 _size = size;
36 _isVertexShader = isVertexShader;
37 }
38
39 /**
40 * @inheritDoc
41 */
42 public function set(cpuConstants : Dictionary,
43 vsConstants : Vector.<Number>,
44 fsConstants : Vector.<Number>,
45 textures : Vector.<ITextureResource>,
46 value : Object) : void
47 {
48 var constants : Vector.<Number> = _isVertexShader ? vsConstants : fsConstants;
49 Serializer.serializeKnownLength(value, constants, _offset, _size);
50 }
51 }
52}