From 44aea55a667794eabebd3c1dae94dae87efe846b Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 3 Jul 2014 21:56:55 +0000 Subject: [PATCH] Int shader inputs --- panda/src/pgraph/shaderInput.I | 101 +++++++++++++++++++++++++++++++++ panda/src/pgraph/shaderInput.h | 46 ++++++++------- 2 files changed, 128 insertions(+), 19 deletions(-) diff --git a/panda/src/pgraph/shaderInput.I b/panda/src/pgraph/shaderInput.I index 82d55f090c..21dd429695 100644 --- a/panda/src/pgraph/shaderInput.I +++ b/panda/src/pgraph/shaderInput.I @@ -377,6 +377,107 @@ ShaderInput(const InternalName *name, const LMatrix3d &mat, int priority) : { } +//////////////////////////////////////////////////////////////////// +// Function: ShaderInput::Constructor +// Access: Published +// Description: +//////////////////////////////////////////////////////////////////// +INLINE ShaderInput:: +ShaderInput(const InternalName *name, const PTA_int &ptr, int priority) : + _name(name), + _type(M_numeric), + _priority(priority), + _stored_ptr(ptr) +{ +} + +//////////////////////////////////////////////////////////////////// +// Function: ShaderInput::Constructor +// Access: Published +// Description: +//////////////////////////////////////////////////////////////////// +INLINE ShaderInput:: +ShaderInput(const InternalName *name, const PTA_LVecBase4i &ptr, int priority) : + _name(name), + _type(M_numeric), + _priority(priority), + _stored_ptr(ptr) +{ +} + +//////////////////////////////////////////////////////////////////// +// Function: ShaderInput::Constructor +// Access: Published +// Description: +//////////////////////////////////////////////////////////////////// +INLINE ShaderInput:: +ShaderInput(const InternalName *name, const PTA_LVecBase3i &ptr, int priority) : + _name(name), + _type(M_numeric), + _priority(priority), + _stored_ptr(ptr) +{ +} + +//////////////////////////////////////////////////////////////////// +// Function: ShaderInput::Constructor +// Access: Published +// Description: +//////////////////////////////////////////////////////////////////// +INLINE ShaderInput:: +ShaderInput(const InternalName *name, const PTA_LVecBase2i &ptr, int priority) : + _name(name), + _type(M_numeric), + _priority(priority), + _stored_ptr(ptr) +{ +} + +//////////////////////////////////////////////////////////////////// +// Function: ShaderInput::Constructor +// Access: Published +// Description: +//////////////////////////////////////////////////////////////////// +INLINE ShaderInput:: +ShaderInput(const InternalName *name, const LVecBase4i &vec, int priority) : + _name(name), + _type(M_numeric), + _priority(priority), + _stored_ptr(vec), + _stored_vector((int)vec.get_x(), (int)vec.get_y(), (int)vec.get_z(), (int)vec.get_w()) +{ +} + +//////////////////////////////////////////////////////////////////// +// Function: ShaderInput::Constructor +// Access: Published +// Description: +//////////////////////////////////////////////////////////////////// +INLINE ShaderInput:: +ShaderInput(const InternalName *name, const LVecBase3i &vec, int priority) : + _name(name), + _type(M_numeric), + _priority(priority), + _stored_ptr(vec), + _stored_vector((int)vec.get_x(), (int)vec.get_y(), (int)vec.get_z(), 0.0) +{ +} + +//////////////////////////////////////////////////////////////////// +// Function: ShaderInput::Constructor +// Access: Published +// Description: +//////////////////////////////////////////////////////////////////// +INLINE ShaderInput:: +ShaderInput(const InternalName *name, const LVecBase2i &vec, int priority) : + _name(name), + _type(M_numeric), + _priority(priority), + _stored_ptr(vec), + _stored_vector((int)vec.get_x(), (int)vec.get_y(), 0.0, 0.0) +{ +} + //////////////////////////////////////////////////////////////////// // Function: ShaderInput::get_name // Access: Published diff --git a/panda/src/pgraph/shaderInput.h b/panda/src/pgraph/shaderInput.h index 86e473bf04..5a7e5135fb 100644 --- a/panda/src/pgraph/shaderInput.h +++ b/panda/src/pgraph/shaderInput.h @@ -48,29 +48,37 @@ PUBLISHED: INLINE ShaderInput(const InternalName *id, const NodePath &np, int priority=0); INLINE ShaderInput(const InternalName *id, Texture *tex, int priority=0); INLINE ShaderInput(const InternalName *id, const PTA_float &ptr, int priority=0); - INLINE ShaderInput(const InternalName *id, const PTA_LVecBase4f &ptr, int priority=0); - INLINE ShaderInput(const InternalName *id, const PTA_LVecBase3f &ptr, int priority=0); - INLINE ShaderInput(const InternalName *id, const PTA_LVecBase2f &ptr, int priority=0); - INLINE ShaderInput(const InternalName *id, const PTA_LMatrix4f &ptr, int priority=0); - INLINE ShaderInput(const InternalName *id, const PTA_LMatrix3f &ptr, int priority=0); - INLINE ShaderInput(const InternalName *id, const LVecBase4f &vec, int priority=0); - INLINE ShaderInput(const InternalName *id, const LVecBase3f &vec, int priority=0); - INLINE ShaderInput(const InternalName *id, const LVecBase2f &vec, int priority=0); - INLINE ShaderInput(const InternalName *id, const LMatrix4f &mat, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_LVecBase4f &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_LVecBase3f &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_LVecBase2f &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_LMatrix4f &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_LMatrix3f &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const LVecBase4f &vec, int priority=0); + INLINE ShaderInput(const InternalName *id, const LVecBase3f &vec, int priority=0); + INLINE ShaderInput(const InternalName *id, const LVecBase2f &vec, int priority=0); + INLINE ShaderInput(const InternalName *id, const LMatrix4f &mat, int priority=0); INLINE ShaderInput(const InternalName *id, const LMatrix3f &mat, int priority=0); - INLINE ShaderInput(const InternalName *id, const PTA_double &ptr, int priority=0); - INLINE ShaderInput(const InternalName *id, const PTA_LVecBase4d &ptr, int priority=0); - INLINE ShaderInput(const InternalName *id, const PTA_LVecBase3d &ptr, int priority=0); - INLINE ShaderInput(const InternalName *id, const PTA_LVecBase2d &ptr, int priority=0); - INLINE ShaderInput(const InternalName *id, const PTA_LMatrix4d &ptr, int priority=0); - INLINE ShaderInput(const InternalName *id, const PTA_LMatrix3d &ptr, int priority=0); - INLINE ShaderInput(const InternalName *id, const LVecBase4d &vec, int priority=0); - INLINE ShaderInput(const InternalName *id, const LVecBase3d &vec, int priority=0); - INLINE ShaderInput(const InternalName *id, const LVecBase2d &vec, int priority=0); - INLINE ShaderInput(const InternalName *id, const LMatrix4d &mat, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_double &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_LVecBase4d &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_LVecBase3d &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_LVecBase2d &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_LMatrix4d &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_LMatrix3d &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const LVecBase4d &vec, int priority=0); + INLINE ShaderInput(const InternalName *id, const LVecBase3d &vec, int priority=0); + INLINE ShaderInput(const InternalName *id, const LVecBase2d &vec, int priority=0); + INLINE ShaderInput(const InternalName *id, const LMatrix4d &mat, int priority=0); INLINE ShaderInput(const InternalName *id, const LMatrix3d &mat, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_int &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_LVecBase4i &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_LVecBase3i &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const PTA_LVecBase2i &ptr, int priority=0); + INLINE ShaderInput(const InternalName *id, const LVecBase4i &vec, int priority=0); + INLINE ShaderInput(const InternalName *id, const LVecBase3i &vec, int priority=0); + INLINE ShaderInput(const InternalName *id, const LVecBase2i &vec, int priority=0); + enum ShaderInputType { M_invalid = 0, M_texture,