Big UberShader update

-Added GRAPHICS_MAX_LIGHTPERPASS macro
-Added glGetActiveUniform OpenGL function
-Added (Uber)ShaderLibrary
-Added (Uber)ShaderName parameter to models
-Changed uniform system
-Fixed Node copying
-Moved Material class to Graphics module
-Optimized lights
-Remade Shader class
-Renamed Node::Invalidate to Node::InvalidateNode
-Renamed ShaderProgram to Shader


Former-commit-id: 15f0cad52969e91a2442e7d750ba2dc412f3549d
This commit is contained in:
Lynix
2014-02-21 19:27:39 +01:00
parent 4ee2ceaef0
commit 86bdab9055
147 changed files with 2693 additions and 4135 deletions

View File

@@ -28,15 +28,14 @@ m_initialPosition(node.m_initialPosition),
m_initialScale(node.m_initialScale),
m_position(node.m_position),
m_scale(node.m_scale),
m_parent(node.m_parent),
m_parent(nullptr),
m_derivedUpdated(false),
m_inheritPosition(node.m_inheritPosition),
m_inheritRotation(node.m_inheritRotation),
m_inheritScale(node.m_inheritScale),
m_transformMatrixUpdated(false)
{
if (m_parent)
m_parent->AddChild(this);
SetParent(node.m_parent, false);
}
NzNode::~NzNode()
@@ -247,7 +246,7 @@ NzNode& NzNode::Interpolate(const NzNode& nodeA, const NzNode& nodeB, float inte
break;
}
Invalidate();
InvalidateNode();
return *this;
}
@@ -275,7 +274,7 @@ NzNode& NzNode::Move(const NzVector3f& movement, nzCoordSys coordSys)
break;
}
Invalidate();
InvalidateNode();
return *this;
}
@@ -308,7 +307,7 @@ NzNode& NzNode::Rotate(const NzQuaternionf& rotation, nzCoordSys coordSys)
m_rotation.Normalize();
Invalidate();
InvalidateNode();
return *this;
}
@@ -316,7 +315,7 @@ NzNode& NzNode::Scale(const NzVector3f& scale)
{
m_scale *= scale;
Invalidate();
InvalidateNode();
return *this;
}
@@ -324,7 +323,7 @@ NzNode& NzNode::Scale(float scale)
{
m_scale *= scale;
Invalidate();
InvalidateNode();
return *this;
}
@@ -334,7 +333,7 @@ NzNode& NzNode::Scale(float scaleX, float scaleY, float scaleZ)
m_scale.y *= scaleY;
m_scale.z *= scaleZ;
Invalidate();
InvalidateNode();
return *this;
}
@@ -345,7 +344,7 @@ void NzNode::SetInheritPosition(bool inheritPosition)
{
m_inheritPosition = inheritPosition;
Invalidate();
InvalidateNode();
}
}
@@ -356,7 +355,7 @@ void NzNode::SetInheritRotation(bool inheritRotation)
{
m_inheritRotation = inheritRotation;
Invalidate();
InvalidateNode();
}
}
@@ -367,7 +366,7 @@ void NzNode::SetInheritScale(bool inheritScale)
{
m_inheritScale = inheritScale;
Invalidate();
InvalidateNode();
}
}
@@ -375,14 +374,14 @@ void NzNode::SetInitialPosition(const NzVector3f& position)
{
m_initialPosition = position;
Invalidate();
InvalidateNode();
}
void NzNode::SetInitialPosition(float positionX, float positionY, float positionZ)
{
m_initialPosition.Set(positionX, positionY, positionZ);
Invalidate();
InvalidateNode();
}
void NzNode::SetInitialRotation(const NzQuaternionf& rotation)
@@ -390,28 +389,28 @@ void NzNode::SetInitialRotation(const NzQuaternionf& rotation)
m_initialRotation = rotation;
m_initialRotation.Normalize(); // Évitons toute mauvaise surprise ...
Invalidate();
InvalidateNode();
}
void NzNode::SetInitialScale(const NzVector3f& scale)
{
m_initialScale = scale;
Invalidate();
InvalidateNode();
}
void NzNode::SetInitialScale(float scale)
{
m_initialScale.Set(scale);
Invalidate();
InvalidateNode();
}
void NzNode::SetInitialScale(float scaleX, float scaleY, float scaleZ)
{
m_initialScale.Set(scaleX, scaleY, scaleZ);
Invalidate();
InvalidateNode();
}
void NzNode::SetName(const NzString& name)
@@ -457,7 +456,7 @@ void NzNode::SetParent(const NzNode* node, bool keepDerived)
if (m_parent)
m_parent->AddChild(this);
Invalidate();
InvalidateNode();
}
OnParenting(node);
@@ -489,7 +488,7 @@ void NzNode::SetPosition(const NzVector3f& position, nzCoordSys coordSys)
break;
}
Invalidate();
InvalidateNode();
}
void NzNode::SetPosition(float positionX, float positionY, float positionZ, nzCoordSys coordSys)
@@ -522,7 +521,7 @@ void NzNode::SetRotation(const NzQuaternionf& rotation, nzCoordSys coordSys)
break;
}
Invalidate();
InvalidateNode();
}
void NzNode::SetScale(const NzVector3f& scale, nzCoordSys coordSys)
@@ -541,7 +540,7 @@ void NzNode::SetScale(const NzVector3f& scale, nzCoordSys coordSys)
break;
}
Invalidate();
InvalidateNode();
}
void NzNode::SetScale(float scale, nzCoordSys coordSys)
@@ -627,7 +626,7 @@ NzNode& NzNode::operator=(const NzNode& node)
m_rotation = node.m_rotation;
m_scale = node.m_scale;
Invalidate();
InvalidateNode();
return *this;
}
@@ -645,13 +644,13 @@ void NzNode::AddChild(NzNode* node) const
m_childs.push_back(node);
}
void NzNode::Invalidate()
void NzNode::InvalidateNode()
{
m_derivedUpdated = false;
m_transformMatrixUpdated = false;
for (NzNode* node : m_childs)
node->Invalidate();
node->InvalidateNode();
}
void NzNode::OnParenting(const NzNode* parent)

View File

@@ -1021,121 +1021,121 @@ NzKeyboard::Key NzWindowImpl::ConvertVirtualKey(WPARAM key, LPARAM flags)
return (((flags >> 16) & 0xFF) == scancode) ? NzKeyboard::LShift : NzKeyboard::RShift;
}
case 0x30: return NzKeyboard::Num0;
case 0x31: return NzKeyboard::Num1;
case 0x32: return NzKeyboard::Num2;
case 0x33: return NzKeyboard::Num3;
case 0x34: return NzKeyboard::Num4;
case 0x35: return NzKeyboard::Num5;
case 0x36: return NzKeyboard::Num6;
case 0x37: return NzKeyboard::Num7;
case 0x38: return NzKeyboard::Num8;
case 0x39: return NzKeyboard::Num9;
case 0x41: return NzKeyboard::A;
case 0x42: return NzKeyboard::B;
case 0x43: return NzKeyboard::C;
case 0x44: return NzKeyboard::D;
case 0x45: return NzKeyboard::E;
case 0x46: return NzKeyboard::F;
case 0x47: return NzKeyboard::G;
case 0x48: return NzKeyboard::H;
case 0x49: return NzKeyboard::I;
case 0x4A: return NzKeyboard::J;
case 0x4B: return NzKeyboard::K;
case 0x4C: return NzKeyboard::L;
case 0x4D: return NzKeyboard::M;
case 0x4E: return NzKeyboard::N;
case 0x4F: return NzKeyboard::O;
case 0x50: return NzKeyboard::P;
case 0x51: return NzKeyboard::Q;
case 0x52: return NzKeyboard::R;
case 0x53: return NzKeyboard::S;
case 0x54: return NzKeyboard::T;
case 0x55: return NzKeyboard::U;
case 0x56: return NzKeyboard::V;
case 0x57: return NzKeyboard::W;
case 0x58: return NzKeyboard::X;
case 0x59: return NzKeyboard::Y;
case 0x5A: return NzKeyboard::Z;
case VK_ADD: return NzKeyboard::Add;
case VK_BACK: return NzKeyboard::Backspace;
case VK_BROWSER_BACK: return NzKeyboard::Browser_Back;
case 0x30: return NzKeyboard::Num0;
case 0x31: return NzKeyboard::Num1;
case 0x32: return NzKeyboard::Num2;
case 0x33: return NzKeyboard::Num3;
case 0x34: return NzKeyboard::Num4;
case 0x35: return NzKeyboard::Num5;
case 0x36: return NzKeyboard::Num6;
case 0x37: return NzKeyboard::Num7;
case 0x38: return NzKeyboard::Num8;
case 0x39: return NzKeyboard::Num9;
case 0x41: return NzKeyboard::A;
case 0x42: return NzKeyboard::B;
case 0x43: return NzKeyboard::C;
case 0x44: return NzKeyboard::D;
case 0x45: return NzKeyboard::E;
case 0x46: return NzKeyboard::F;
case 0x47: return NzKeyboard::G;
case 0x48: return NzKeyboard::H;
case 0x49: return NzKeyboard::I;
case 0x4A: return NzKeyboard::J;
case 0x4B: return NzKeyboard::K;
case 0x4C: return NzKeyboard::L;
case 0x4D: return NzKeyboard::M;
case 0x4E: return NzKeyboard::N;
case 0x4F: return NzKeyboard::O;
case 0x50: return NzKeyboard::P;
case 0x51: return NzKeyboard::Q;
case 0x52: return NzKeyboard::R;
case 0x53: return NzKeyboard::S;
case 0x54: return NzKeyboard::T;
case 0x55: return NzKeyboard::U;
case 0x56: return NzKeyboard::V;
case 0x57: return NzKeyboard::W;
case 0x58: return NzKeyboard::X;
case 0x59: return NzKeyboard::Y;
case 0x5A: return NzKeyboard::Z;
case VK_ADD: return NzKeyboard::Add;
case VK_BACK: return NzKeyboard::Backspace;
case VK_BROWSER_BACK: return NzKeyboard::Browser_Back;
case VK_BROWSER_FAVORITES: return NzKeyboard::Browser_Favorites;
case VK_BROWSER_FORWARD: return NzKeyboard::Browser_Forward;
case VK_BROWSER_HOME: return NzKeyboard::Browser_Home;
case VK_BROWSER_HOME: return NzKeyboard::Browser_Home;
case VK_BROWSER_REFRESH: return NzKeyboard::Browser_Refresh;
case VK_BROWSER_SEARCH: return NzKeyboard::Browser_Search;
case VK_BROWSER_STOP: return NzKeyboard::Browser_Stop;
case VK_CAPITAL: return NzKeyboard::CapsLock;
case VK_CLEAR: return NzKeyboard::Clear;
case VK_BROWSER_SEARCH: return NzKeyboard::Browser_Search;
case VK_BROWSER_STOP: return NzKeyboard::Browser_Stop;
case VK_CAPITAL: return NzKeyboard::CapsLock;
case VK_CLEAR: return NzKeyboard::Clear;
case VK_DECIMAL: return NzKeyboard::Decimal;
case VK_DELETE: return NzKeyboard::Delete;
case VK_DIVIDE: return NzKeyboard::Divide;
case VK_DOWN: return NzKeyboard::Down;
case VK_END: return NzKeyboard::End;
case VK_ESCAPE: return NzKeyboard::Escape;
case VK_F1: return NzKeyboard::F1;
case VK_F2: return NzKeyboard::F2;
case VK_F3: return NzKeyboard::F3;
case VK_F4: return NzKeyboard::F4;
case VK_F5: return NzKeyboard::F5;
case VK_F6: return NzKeyboard::F6;
case VK_F7: return NzKeyboard::F7;
case VK_F8: return NzKeyboard::F8;
case VK_F9: return NzKeyboard::F9;
case VK_F10: return NzKeyboard::F10;
case VK_F11: return NzKeyboard::F11;
case VK_F12: return NzKeyboard::F12;
case VK_F13: return NzKeyboard::F13;
case VK_F14: return NzKeyboard::F14;
case VK_F15: return NzKeyboard::F15;
case VK_HOME: return NzKeyboard::Home;
case VK_INSERT: return NzKeyboard::Insert;
case VK_LEFT: return NzKeyboard::Left;
case VK_LWIN: return NzKeyboard::LSystem;
case VK_DELETE: return NzKeyboard::Delete;
case VK_DIVIDE: return NzKeyboard::Divide;
case VK_DOWN: return NzKeyboard::Down;
case VK_END: return NzKeyboard::End;
case VK_ESCAPE: return NzKeyboard::Escape;
case VK_F1: return NzKeyboard::F1;
case VK_F2: return NzKeyboard::F2;
case VK_F3: return NzKeyboard::F3;
case VK_F4: return NzKeyboard::F4;
case VK_F5: return NzKeyboard::F5;
case VK_F6: return NzKeyboard::F6;
case VK_F7: return NzKeyboard::F7;
case VK_F8: return NzKeyboard::F8;
case VK_F9: return NzKeyboard::F9;
case VK_F10: return NzKeyboard::F10;
case VK_F11: return NzKeyboard::F11;
case VK_F12: return NzKeyboard::F12;
case VK_F13: return NzKeyboard::F13;
case VK_F14: return NzKeyboard::F14;
case VK_F15: return NzKeyboard::F15;
case VK_HOME: return NzKeyboard::Home;
case VK_INSERT: return NzKeyboard::Insert;
case VK_LEFT: return NzKeyboard::Left;
case VK_LWIN: return NzKeyboard::LSystem;
case VK_MEDIA_NEXT_TRACK: return NzKeyboard::Media_Next;
case VK_MEDIA_PLAY_PAUSE: return NzKeyboard::Media_Play;
case VK_MEDIA_PREV_TRACK: return NzKeyboard::Media_Previous;
case VK_MEDIA_STOP: return NzKeyboard::Media_Stop;
case VK_MULTIPLY: return NzKeyboard::Multiply;
case VK_NEXT: return NzKeyboard::PageDown;
case VK_NUMPAD0: return NzKeyboard::Numpad0;
case VK_NUMPAD1: return NzKeyboard::Numpad1;
case VK_NUMPAD2: return NzKeyboard::Numpad2;
case VK_NUMPAD3: return NzKeyboard::Numpad3;
case VK_NUMPAD4: return NzKeyboard::Numpad4;
case VK_NUMPAD5: return NzKeyboard::Numpad5;
case VK_NUMPAD6: return NzKeyboard::Numpad6;
case VK_NUMPAD7: return NzKeyboard::Numpad7;
case VK_NUMPAD8: return NzKeyboard::Numpad8;
case VK_NUMPAD9: return NzKeyboard::Numpad9;
case VK_NUMLOCK: return NzKeyboard::NumLock;
case VK_OEM_1: return NzKeyboard::Semicolon;
case VK_OEM_2: return NzKeyboard::Slash;
case VK_OEM_3: return NzKeyboard::Tilde;
case VK_OEM_4: return NzKeyboard::LBracket;
case VK_OEM_5: return NzKeyboard::Backslash;
case VK_OEM_6: return NzKeyboard::RBracket;
case VK_OEM_7: return NzKeyboard::Quote;
case VK_OEM_COMMA: return NzKeyboard::Comma;
case VK_OEM_MINUS: return NzKeyboard::Dash;
case VK_OEM_PERIOD: return NzKeyboard::Period;
case VK_OEM_PLUS: return NzKeyboard::Equal;
case VK_RIGHT: return NzKeyboard::Right;
case VK_PRIOR: return NzKeyboard::PageUp;
case VK_PAUSE: return NzKeyboard::Pause;
case VK_PRINT: return NzKeyboard::Print;
case VK_SCROLL: return NzKeyboard::ScrollLock;
case VK_SNAPSHOT: return NzKeyboard::PrintScreen;
case VK_SUBTRACT: return NzKeyboard::Subtract;
case VK_RETURN: return NzKeyboard::Return;
case VK_RWIN: return NzKeyboard::RSystem;
case VK_SPACE: return NzKeyboard::Space;
case VK_TAB: return NzKeyboard::Tab;
case VK_UP: return NzKeyboard::Up;
case VK_VOLUME_DOWN: return NzKeyboard::Volume_Down;
case VK_VOLUME_MUTE: return NzKeyboard::Volume_Mute;
case VK_VOLUME_UP: return NzKeyboard::Volume_Up;
case VK_MEDIA_STOP: return NzKeyboard::Media_Stop;
case VK_MULTIPLY: return NzKeyboard::Multiply;
case VK_NEXT: return NzKeyboard::PageDown;
case VK_NUMPAD0: return NzKeyboard::Numpad0;
case VK_NUMPAD1: return NzKeyboard::Numpad1;
case VK_NUMPAD2: return NzKeyboard::Numpad2;
case VK_NUMPAD3: return NzKeyboard::Numpad3;
case VK_NUMPAD4: return NzKeyboard::Numpad4;
case VK_NUMPAD5: return NzKeyboard::Numpad5;
case VK_NUMPAD6: return NzKeyboard::Numpad6;
case VK_NUMPAD7: return NzKeyboard::Numpad7;
case VK_NUMPAD8: return NzKeyboard::Numpad8;
case VK_NUMPAD9: return NzKeyboard::Numpad9;
case VK_NUMLOCK: return NzKeyboard::NumLock;
case VK_OEM_1: return NzKeyboard::Semicolon;
case VK_OEM_2: return NzKeyboard::Slash;
case VK_OEM_3: return NzKeyboard::Tilde;
case VK_OEM_4: return NzKeyboard::LBracket;
case VK_OEM_5: return NzKeyboard::Backslash;
case VK_OEM_6: return NzKeyboard::RBracket;
case VK_OEM_7: return NzKeyboard::Quote;
case VK_OEM_COMMA: return NzKeyboard::Comma;
case VK_OEM_MINUS: return NzKeyboard::Dash;
case VK_OEM_PERIOD: return NzKeyboard::Period;
case VK_OEM_PLUS: return NzKeyboard::Equal;
case VK_RIGHT: return NzKeyboard::Right;
case VK_PRIOR: return NzKeyboard::PageUp;
case VK_PAUSE: return NzKeyboard::Pause;
case VK_PRINT: return NzKeyboard::Print;
case VK_SCROLL: return NzKeyboard::ScrollLock;
case VK_SNAPSHOT: return NzKeyboard::PrintScreen;
case VK_SUBTRACT: return NzKeyboard::Subtract;
case VK_RETURN: return NzKeyboard::Return;
case VK_RWIN: return NzKeyboard::RSystem;
case VK_SPACE: return NzKeyboard::Space;
case VK_TAB: return NzKeyboard::Tab;
case VK_UP: return NzKeyboard::Up;
case VK_VOLUME_DOWN: return NzKeyboard::Volume_Down;
case VK_VOLUME_MUTE: return NzKeyboard::Volume_Mute;
case VK_VOLUME_UP: return NzKeyboard::Volume_Up;
default:
return NzKeyboard::Undefined;