@@ -104,7 +104,7 @@ if (!Math.log2) {
104104 } ;
105105}
106106
107- vgl . version = '0.3.8 ' ;
107+ vgl . version = '0.3.9 ' ;
108108
109109//////////////////////////////////////////////////////////////////////////////
110110/**
@@ -8836,7 +8836,7 @@ vgl.uniform = function (type, name) {
88368836 'use strict' ;
88378837
88388838 if ( ! ( this instanceof vgl . uniform ) ) {
8839- return new vgl . uniform ( ) ;
8839+ return new vgl . uniform ( type , name ) ;
88408840 }
88418841
88428842 this . getTypeNumberOfComponents = function ( type ) {
@@ -8919,25 +8919,9 @@ vgl.uniform = function (type, name) {
89198919 */
89208920 /////////////////////////////////////////////////////////////////////////////
89218921 this . set = function ( value ) {
8922- var i = 0 ;
8923- if ( m_dataArray . length === 16 ) {
8924- for ( i = 0 ; i < 16 ; i += 1 ) {
8925- m_dataArray [ i ] = value [ i ] ;
8926- }
8927- } else if ( m_dataArray . length === 9 ) {
8928- for ( i = 0 ; i < 9 ; i += 1 ) {
8929- m_dataArray [ i ] = value [ i ] ;
8930- }
8931- } else if ( m_dataArray . length === 4 ) {
8932- for ( i = 0 ; i < 4 ; i += 1 ) {
8933- m_dataArray [ i ] = value [ i ] ;
8934- }
8935- } else if ( m_dataArray . length === 3 ) {
8936- for ( i = 0 ; i < 3 ; i += 1 ) {
8937- m_dataArray [ i ] = value [ i ] ;
8938- }
8939- } else if ( m_dataArray . length === 2 ) {
8940- for ( i = 0 ; i < 2 ; i += 1 ) {
8922+ var i = 0 , lendata = m_dataArray . length ;
8923+ if ( lendata !== 1 ) {
8924+ for ( i = 0 ; i < lendata ; i += 1 ) {
89418925 m_dataArray [ i ] = value [ i ] ;
89428926 }
89438927 } else {
@@ -8953,10 +8937,6 @@ vgl.uniform = function (type, name) {
89538937 */
89548938 /////////////////////////////////////////////////////////////////////////////
89558939 this . callGL = function ( renderState , location ) {
8956- if ( this . m_numberElements < 1 ) {
8957- return ;
8958- }
8959-
89608940 switch ( m_type ) {
89618941 case vgl . GL . BOOL :
89628942 case vgl . GL . INT :
@@ -8965,12 +8945,24 @@ vgl.uniform = function (type, name) {
89658945 case vgl . GL . FLOAT :
89668946 renderState . m_context . uniform1fv ( location , m_dataArray ) ;
89678947 break ;
8948+ case vgl . GL . BOOL_VEC2 :
8949+ case vgl . GL . INT_VEC2 :
8950+ renderState . m_context . uniform2iv ( location , m_dataArray ) ;
8951+ break ;
89688952 case vgl . GL . FLOAT_VEC2 :
89698953 renderState . m_context . uniform2fv ( location , m_dataArray ) ;
89708954 break ;
8955+ case vgl . GL . BOOL_VEC3 :
8956+ case vgl . GL . INT_VEC3 :
8957+ renderState . m_context . uniform3iv ( location , m_dataArray ) ;
8958+ break ;
89718959 case vgl . GL . FLOAT_VEC3 :
89728960 renderState . m_context . uniform3fv ( location , m_dataArray ) ;
89738961 break ;
8962+ case vgl . GL . BOOL_VEC4 :
8963+ case vgl . GL . INT_VEC4 :
8964+ renderState . m_context . uniform4iv ( location , m_dataArray ) ;
8965+ break ;
89748966 case vgl . GL . FLOAT_VEC4 :
89758967 renderState . m_context . uniform4fv ( location , m_dataArray ) ;
89768968 break ;
@@ -8996,8 +8988,8 @@ vgl.uniform = function (type, name) {
89968988 */
89978989 /////////////////////////////////////////////////////////////////////////////
89988990 this . update = function ( renderState , program ) {
8999- renderState = renderState ; /* unused parameter */
9000- program = program ; /* unused parameter */
8991+ void renderState ; /* unused parameter */
8992+ void program ; /* unused parameter */
90018993 // Should be implemented by the derived class
90028994 } ;
90038995
@@ -9019,7 +9011,7 @@ vgl.modelViewUniform = function (name) {
90199011 return new vgl . modelViewUniform ( name ) ;
90209012 }
90219013
9022- if ( name . length === 0 ) {
9014+ if ( ! name ) {
90239015 name = 'modelViewMatrix' ;
90249016 }
90259017
@@ -9036,7 +9028,7 @@ vgl.modelViewUniform = function (name) {
90369028 */
90379029 /////////////////////////////////////////////////////////////////////////////
90389030 this . update = function ( renderState , program ) {
9039- program = program ; /* unused parameter */
9031+ void program ; /* unused parameter */
90409032 this . set ( renderState . m_modelViewMatrix ) ;
90419033 } ;
90429034
@@ -9061,7 +9053,7 @@ vgl.modelViewOriginUniform = function (name, origin) {
90619053 return new vgl . modelViewOriginUniform ( name , origin ) ;
90629054 }
90639055
9064- if ( name . length === 0 ) {
9056+ if ( ! name ) {
90659057 name = 'modelViewMatrix' ;
90669058 }
90679059 origin = origin || [ 0 , 0 , 0 ] ;
@@ -9094,18 +9086,23 @@ vgl.modelViewOriginUniform = function (name, origin) {
90949086 */
90959087 /////////////////////////////////////////////////////////////////////////////
90969088 this . update = function ( renderState , program ) {
9097- program = program ; /* unused parameter */
9098- var view = mat4 . create ( ) ;
9099- mat4 . translate ( view , renderState . m_modelViewMatrix , m_origin ) ;
9089+ void program ; /* unused parameter */
9090+ var view = renderState . m_modelViewMatrix ;
91009091 if ( renderState . m_modelViewAlignment ) {
9092+ /* adjust alignment before origin. Otherwise, a changing origin can
9093+ * affect the rounding choice and result in a 1 pixe jitter. */
91019094 var align = renderState . m_modelViewAlignment ;
9095+ /* Don't modify the orignal matrix. If we are in an environment where
9096+ * you can't slice an Float32Array, switch to a regular array */
9097+ view = view . slice ? view . slice ( ) : Array . prototype . slice . call ( view ) ;
91029098 /* view[12] and view[13] are the x and y offsets. align.round is the
91039099 * units-per-pixel, and align.dx and .dy are either 0 or half the size of
91049100 * a unit-per-pixel. The alignment guarantees that the texels are
91059101 * aligned with screen pixels. */
91069102 view [ 12 ] = Math . round ( view [ 12 ] / align . roundx ) * align . roundx + align . dx ;
91079103 view [ 13 ] = Math . round ( view [ 13 ] / align . roundy ) * align . roundy + align . dy ;
91089104 }
9105+ view = mat4 . translate ( mat4 . create ( ) , view , m_origin ) ;
91099106 this . set ( view ) ;
91109107 } ;
91119108
@@ -9129,7 +9126,7 @@ vgl.projectionUniform = function (name) {
91299126 return new vgl . projectionUniform ( name ) ;
91309127 }
91319128
9132- if ( name . length === 0 ) {
9129+ if ( ! name ) {
91339130 name = 'projectionMatrix' ;
91349131 }
91359132
@@ -9146,7 +9143,7 @@ vgl.projectionUniform = function (name) {
91469143 */
91479144 /////////////////////////////////////////////////////////////////////////////
91489145 this . update = function ( renderState , program ) {
9149- program = program ; /* unused parameter */
9146+ void program ; /* unused parameter */
91509147 this . set ( renderState . m_projectionMatrix ) ;
91519148 } ;
91529149
@@ -9171,7 +9168,7 @@ vgl.floatUniform = function (name, value) {
91719168 return new vgl . floatUniform ( name , value ) ;
91729169 }
91739170
9174- if ( name . length === 0 ) {
9171+ if ( ! name ) {
91759172 name = 'floatUniform' ;
91769173 }
91779174
@@ -9199,7 +9196,7 @@ vgl.normalMatrixUniform = function (name) {
91999196 return new vgl . normalMatrixUniform ( name ) ;
92009197 }
92019198
9202- if ( name . length === 0 ) {
9199+ if ( ! name ) {
92039200 name = 'normalMatrix' ;
92049201 }
92059202
@@ -9216,7 +9213,7 @@ vgl.normalMatrixUniform = function (name) {
92169213 */
92179214 /////////////////////////////////////////////////////////////////////////////
92189215 this . update = function ( renderState , program ) {
9219- program = program ; /* unused parameter */
9216+ void program ; /* unused parameter */
92209217 this . set ( renderState . m_normalMatrix ) ;
92219218 } ;
92229219
0 commit comments