Beispiel #1
0
	DynLibFunc DynLibImpl::GetSymbol(const String& symbol, String* errorMessage) const
	{
		DynLibFunc sym = reinterpret_cast<DynLibFunc>(GetProcAddress(m_handle, symbol.GetConstBuffer()));
		if (!sym)
			*errorMessage = Error::GetLastSystemError();

		return sym;
	}
Beispiel #2
0
	void StdLogger::WriteError(ErrorType type, const String& error, unsigned int line, const char* file, const char* function)
	{
		fprintf(stderr, "%s: %s", errorType[type], error.GetConstBuffer());

		if (line != 0 && file && function)
			fprintf(stderr, " (in %s at %s:%d)", function, file, line);

		fputc('\n', stderr);
	}
	bool LuaState::Load(const String& code)
	{
		if (luaL_loadstring(m_state, code.GetConstBuffer()) != 0)
		{
			m_lastError = lua_tostring(m_state, -1);
			lua_pop(m_state, 1);

			return false;
		}

		return true;
	}
Beispiel #4
0
	bool LuaInstance::Execute(const String& code)
	{
		if (code.IsEmpty())
			return true;

		if (luaL_loadstring(m_state, code.GetConstBuffer()) != 0)
		{
			m_lastError = lua_tostring(m_state, -1);
			lua_pop(m_state, 1);

			return false;
		}

		return Run(0, 0);
	}
Beispiel #5
0
	bool Shader::Create()
	{
		Context::EnsureContext();

		m_program = glCreateProgram();
		if (!m_program)
		{
			NazaraError("Failed to create program");
			return false;
		}

		m_linked = false;

		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_InstanceData0], "InstanceData0");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_InstanceData1], "InstanceData1");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_InstanceData2], "InstanceData2");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_InstanceData3], "InstanceData3");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_InstanceData4], "InstanceData4");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_InstanceData5], "InstanceData5");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_Color],         "VertexColor");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_Normal],        "VertexNormal");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_Position],      "VertexPosition");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_Tangent],       "VertexTangent");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_TexCoord],      "VertexTexCoord");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_Userdata0],     "VertexUserdata0");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_Userdata1],     "VertexUserdata1");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_Userdata2],     "VertexUserdata2");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_Userdata3],     "VertexUserdata3");
		glBindAttribLocation(m_program, OpenGL::VertexComponentIndex[VertexComponent_Userdata4],     "VertexUserdata4");

		String uniform;
		uniform = "RenderTarget";

		unsigned int maxRenderTargets = Renderer::GetMaxRenderTargets();
		for (unsigned int i = 0; i < maxRenderTargets; ++i)
		{
			String uniformName = uniform + String::Number(i);
			glBindFragDataLocation(m_program, i, uniformName.GetConstBuffer());
		}

		if (OpenGL::IsSupported(OpenGLExtension_GetProgramBinary))
			glProgramParameteri(m_program, GL_PROGRAM_BINARY_RETRIEVABLE_HINT, GL_TRUE);

		return true;
	}
	void LuaState::ArgCheck(bool condition, unsigned int argNum, const String& error) const
	{
		luaL_argcheck(m_state, condition, argNum, error.GetConstBuffer());
	}
	bool LuaState::IsOfType(int index, const String& tname) const
	{
		return IsOfType(index, tname.GetConstBuffer());
	}
	LuaType LuaState::GetMetatable(const String& tname) const
	{
		return FromLuaType(luaL_getmetatable(m_state, tname.GetConstBuffer()));
	}
	LuaType LuaState::GetGlobal(const String& name) const
	{
		return FromLuaType(lua_getglobal(m_state, name.GetConstBuffer()));
	}
	LuaType LuaState::GetField(const String& fieldName, int tableIndex) const
	{
		return FromLuaType(lua_getfield(m_state, tableIndex, fieldName.GetConstBuffer()));
	}
Beispiel #11
0
	void StdLogger::Write(const String& string)
	{
		fputs(string.GetConstBuffer(), stdout);
		fputc('\n', stdout);
	}
	void LuaState::SetGlobal(const String& name)
	{
		lua_setglobal(m_state, name.GetConstBuffer());
	}
	void LuaState::PushString(const String& str) const
	{
		lua_pushlstring(m_state, str.GetConstBuffer(), str.GetSize());
	}
	bool LuaState::NewMetatable(const String& str)
	{
		return luaL_newmetatable(m_state, str.GetConstBuffer()) != 0;
	}
		int GetAddressInfo(const String& hostname, const String& service, const addrinfoImpl* hints, addrinfoImpl** results)
		{
			return getaddrinfo(hostname.GetConstBuffer(), service.GetConstBuffer(), hints, results);
		}
Beispiel #16
0
	OpenALFunc OpenAL::GetEntry(const String& entryPoint)
	{
		return LoadEntry(entryPoint.GetConstBuffer(), false);
	}
Beispiel #17
0
	int Shader::GetUniformLocation(const String& name) const
	{
		Context::EnsureContext();

		return glGetUniformLocation(m_program, name.GetConstBuffer());
	}
	void LuaState::PushMetatable(const String& str) const
	{
		luaL_getmetatable(m_state, str.GetConstBuffer());
	}
	int LuaState::ArgError(unsigned int argNum, const String& error) const
	{
		return luaL_argerror(m_state, argNum, error.GetConstBuffer());
	}
	void LuaState::SetField(const String& name, int tableIndex) const
	{
		lua_setfield(m_state, tableIndex, name.GetConstBuffer());
	}
	void LuaState::CheckStack(int space, const String& error) const
	{
		CheckStack(space, error.GetConstBuffer());
	}
	void LuaState::SetMetatable(const String& tname) const
	{
		luaL_setmetatable(m_state, tname.GetConstBuffer());
	}
	void LuaState::Error(const String& message) const
	{
		luaL_error(m_state, message.GetConstBuffer());
	}