@@ -275,6 +275,76 @@ void Shader::setName(const String& name) {
275275 this ->name = name;
276276}
277277
278+ Number LocalShaderParam::getNumber () {
279+ if (type != ProgramParam::PARAM_NUMBER) {
280+ return 0.0 ;
281+ }
282+ return *((Number *)data);
283+ }
284+
285+ Vector2 LocalShaderParam::getVector2 () {
286+ if (type != ProgramParam::PARAM_VECTOR2) {
287+ return Vector2 ();
288+ }
289+ return *((Vector2 *)data);
290+ }
291+
292+ Vector3 LocalShaderParam::getVector3 () {
293+ if (type != ProgramParam::PARAM_VECTOR3) {
294+ return Vector3 ();
295+ }
296+ return *((Vector3 *)data);
297+ }
298+
299+ Matrix4 LocalShaderParam::getMatrix4 () {
300+ if (type != ProgramParam::PARAM_MATRIX) {
301+ return Matrix4 ();
302+ }
303+ return *((Matrix4 *)data);
304+ }
305+
306+ Color LocalShaderParam::getColor () {
307+ if (type != ProgramParam::PARAM_COLOR) {
308+ return Color (0.0 , 0.0 , 0.0 , 0.0 );
309+ }
310+ return *((Color *)data);
311+ }
312+
313+ void LocalShaderParam::setNumber (Number x) {
314+ if (type != ProgramParam::PARAM_NUMBER) {
315+ return ;
316+ }
317+ memcpy (data, &x, sizeof (x));
318+ }
319+
320+ void LocalShaderParam::setVector2 (Vector2 x) {
321+ if (type != ProgramParam::PARAM_VECTOR2) {
322+ return ;
323+ }
324+ memcpy (data, &x, sizeof (x));
325+ }
326+
327+ void LocalShaderParam::setVector3 (Vector3 x) {
328+ if (type != ProgramParam::PARAM_VECTOR3) {
329+ return ;
330+ }
331+ memcpy (data, &x, sizeof (x));
332+ }
333+
334+ void LocalShaderParam::setMatrix4 (Matrix4 x) {
335+ if (type != ProgramParam::PARAM_MATRIX) {
336+ return ;
337+ }
338+ memcpy (data, &x, sizeof (x));
339+ }
340+
341+ void LocalShaderParam::setColor (Color x) {
342+ if (type != ProgramParam::PARAM_COLOR) {
343+ return ;
344+ }
345+ static_cast <Color*>(data)->setColor (&x);
346+ }
347+
278348const String& Shader::getName () const {
279349 return name;
280350}
0 commit comments