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:
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user