From 2381fe08be1a0c99d9541761b85064b8ece3f253 Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 29 Oct 2021 18:48:10 +0800 Subject: +md5 --- Runtime/FileSystem/FileWatcher.cpp | 3 ++ Runtime/FileSystem/FileWatcher.h | 16 ++++++++++ Runtime/Graphics/GfxDevice.cpp | 2 ++ Runtime/Scripting/Rendering/Shader.bind.cpp | 48 ++++++++++++++--------------- Runtime/Utilities/Callback.h | 0 Runtime/Utilities/IncrementalTask.h | 13 ++++++++ 6 files changed, 58 insertions(+), 24 deletions(-) create mode 100644 Runtime/FileSystem/FileWatcher.cpp create mode 100644 Runtime/FileSystem/FileWatcher.h create mode 100644 Runtime/Utilities/Callback.h create mode 100644 Runtime/Utilities/IncrementalTask.h (limited to 'Runtime') diff --git a/Runtime/FileSystem/FileWatcher.cpp b/Runtime/FileSystem/FileWatcher.cpp new file mode 100644 index 0000000..7095253 --- /dev/null +++ b/Runtime/FileSystem/FileWatcher.cpp @@ -0,0 +1,3 @@ +#include "FileWatcher.h" + + diff --git a/Runtime/FileSystem/FileWatcher.h b/Runtime/FileSystem/FileWatcher.h new file mode 100644 index 0000000..4626c0a --- /dev/null +++ b/Runtime/FileSystem/FileWatcher.h @@ -0,0 +1,16 @@ +#pragma once + +#include +#include "Runtime/Threading/Thread.h" + +// 检查某个指定文件夹中的文件或子文件夹是否被变动过。 +class FileWatcher : public Thread +{ +public: + + +private: + std::string m_WorkingDirectory; + + +}; \ No newline at end of file diff --git a/Runtime/Graphics/GfxDevice.cpp b/Runtime/Graphics/GfxDevice.cpp index bd8dd9d..d466eb9 100644 --- a/Runtime/Graphics/GfxDevice.cpp +++ b/Runtime/Graphics/GfxDevice.cpp @@ -132,10 +132,12 @@ void GfxDevice::SetUniformTexture(const char* name, Texture* texture) log_error("No available texture unit. Too many textures or forget invoke ResetUniformsState()"); return; } + int texUnit = s_AvailableTextureUnit.back(); s_AvailableTextureUnit.pop_back(); glActiveTexture(GL_TEXTURE0 + texUnit); glBindTexture(GL_TEXTURE_2D, texture->GetGpuID()); + GLint loc = glGetUniformLocation(m_Shader.GetID(), name); glUniform1i(loc, texUnit); } diff --git a/Runtime/Scripting/Rendering/Shader.bind.cpp b/Runtime/Scripting/Rendering/Shader.bind.cpp index 83f8477..0137447 100644 --- a/Runtime/Scripting/Rendering/Shader.bind.cpp +++ b/Runtime/Scripting/Rendering/Shader.bind.cpp @@ -107,70 +107,70 @@ LUA_BIND_IMPL_METHOD(Shader, _UnUse) return 1; } -// shader:SetVector2(name, vec2) -// shader:SetVector2(name, {}) +// shader.SetVector2(name, vec2) +// shader.SetVector2(name, {}) LUA_BIND_IMPL_METHOD(Shader, _SetVector2) { LUA_BIND_PREPARE(L, Shader); - LUA_BIND_CHECK(L, "UST"); + LUA_BIND_CHECK(L, "ST"); - cc8* name = state.GetValue(2, ""); - Internal::Vector2 v2 = state.GetValue(3, Internal::Vector2::zero); + cc8* name = state.GetValue(1, ""); + Internal::Vector2 v2 = state.GetValue(2, Internal::Vector2::zero); g_GfxDevice.SetUniformVec2(name, v2); return 1; } -// shader:SetVector3(name, vec3) -// shader:SetVector3(name, {}) +// shader.SetVector3(name, vec3) +// shader.SetVector3(name, {}) LUA_BIND_IMPL_METHOD(Shader, _SetVector3) { LUA_BIND_PREPARE(L, Shader); - LUA_BIND_CHECK(L, "UST"); + LUA_BIND_CHECK(L, "ST"); - cc8* name = state.GetValue(2, ""); - Internal::Vector3 v3 = state.GetValue(3, Internal::Vector3::zero); + cc8* name = state.GetValue(1, ""); + Internal::Vector3 v3 = state.GetValue(2, Internal::Vector3::zero); g_GfxDevice.SetUniformVec3(name, v3); return 1; } -// shader:SetVector4(name, vec4) -// shader:SetVector4(name, {}) +// shader.SetVector4(name, vec4) +// shader.SetVector4(name, {}) LUA_BIND_IMPL_METHOD(Shader, _SetVector4) { LUA_BIND_PREPARE(L, Shader); - LUA_BIND_CHECK(L, "UST"); + LUA_BIND_CHECK(L, "ST"); - cc8* name = state.GetValue(2, ""); - Internal::Vector4 v4 = state.GetValue(3, Internal::Vector4::zero); + cc8* name = state.GetValue(1, ""); + Internal::Vector4 v4 = state.GetValue(2, Internal::Vector4::zero); g_GfxDevice.SetUniformVec4(name, v4); return 1; } -// shader:SetMatrix4(name, mat4) -// shader:SetMatrix4(name, {}) +// shader.SetMatrix4(name, mat4) +// shader.SetMatrix4(name, {}) LUA_BIND_IMPL_METHOD(Shader, _SetMatrix4) { LUA_BIND_PREPARE(L, Shader); - LUA_BIND_CHECK(L, "UST"); + LUA_BIND_CHECK(L, "ST"); - cc8* name = state.GetValue(2, ""); - Internal::Matrix44 m4 = state.GetValue(3, Internal::Matrix44::identity); + cc8* name = state.GetValue(1, ""); + Internal::Matrix44 m4 = state.GetValue(2, Internal::Matrix44::identity); g_GfxDevice.SetUniformMat4(name, m4); return 1; } -// shader:SetTexture(name,texture) +// shader.SetTexture(name,texture) LUA_BIND_IMPL_METHOD(Shader, _SetTexture) { LUA_BIND_PREPARE(L, Shader); - LUA_BIND_CHECK(L, "USU"); + LUA_BIND_CHECK(L, "SU"); - cc8* name = state.GetValue(2, ""); - Texture* tex = state.GetUserdata(); + cc8* name = state.GetValue(1, ""); + Texture* tex = state.GetUserdata(2); g_GfxDevice.SetUniformTexture(name, tex); diff --git a/Runtime/Utilities/Callback.h b/Runtime/Utilities/Callback.h new file mode 100644 index 0000000..e69de29 diff --git a/Runtime/Utilities/IncrementalTask.h b/Runtime/Utilities/IncrementalTask.h new file mode 100644 index 0000000..29163d9 --- /dev/null +++ b/Runtime/Utilities/IncrementalTask.h @@ -0,0 +1,13 @@ +#pragma once + +// 增量式多任务处理 +class IncrementalTask +{ +public: + IncrementalTask() {}; + virtual ~IncrementalTask() {}; + + virtual void OnStep() = 0; + virtual bool IsDone() = 0; + +}; -- cgit v1.1-26-g67d0