Пример #1
0
void LuaScriptEngine::executeScriptFile(const std::string &path)
{
	std::ifstream file;
	file.open(path);
	file.seekg(0, std::ios_base::end);
	const size_t taille = file.tellg();
	char *buffer        = new char[taille+1];
	buffer[taille]      = 0;
	file.seekg(0, std::ios_base::beg);
	file.read(buffer, taille);
	file.close();
	executeBuffer(buffer, taille, path.c_str());
	delete buffer;
}
Пример #2
0
void
Driver::run()
{
   while (mRunState == RunState::Running) {
      // Grab the next buffer
      gpu::ringbuffer::wait();
      auto buffer = gpu::ringbuffer::read();

      // Check for any fences completing
      checkSyncFences();

      // Process the buffer if there is anything new
      if (!buffer.empty()) {
         executeBuffer(buffer);
      }
   }
}
Пример #3
0
bool LuaScriptEngine::executeFile(const Common::String &fileName) {
#ifdef DEBUG
	int __startStackDepth = lua_gettop(_state);
#endif
	debug(2, "LuaScriptEngine::executeFile(%s)", fileName.c_str());

	// Get a pointer to the package manager
	PackageManager *pPackage = Kernel::getInstance()->getPackage();
	assert(pPackage);

	// File read
	uint fileSize;
	byte *fileData = pPackage->getFile(fileName, &fileSize);
	if (!fileData) {
		error("Couldn't read \"%s\".", fileName.c_str());
#ifdef DEBUG
		assert(__startStackDepth == lua_gettop(_state));
#endif
		return false;
	}

	// Run the file content
	if (!executeBuffer(fileData, fileSize, "@" + pPackage->getAbsolutePath(fileName))) {
		// Release file buffer
		delete[] fileData;
#ifdef DEBUG
		assert(__startStackDepth == lua_gettop(_state));
#endif
		return false;
	}

	// Release file buffer
	delete[] fileData;

#ifdef DEBUG
	assert(__startStackDepth == lua_gettop(_state));
#endif

	return true;
}
Пример #4
0
void
Driver::runUntilFlip()
{
   auto startingSwap = mLastSwap;

   while (mRunState == RunState::Running) {
      // Grab the next item
      gpu::ringbuffer::wait();

      // Check for any fences completing
      checkSyncFences();

      // Process the buffer if there is anything new
      auto buffer = gpu::ringbuffer::read();
      if (!buffer.empty()) {
         executeBuffer(buffer);
      }

      if (mLastSwap > startingSwap) {
         break;
      }
   }
}
Пример #5
0
bool Context::executeBuffer(const String& buffer) const
{
    return executeBuffer(buffer, "?");
}
Пример #6
0
bool LuaScriptEngine::executeString(const Common::String &code) {
	return executeBuffer((const byte *)code.c_str(), code.size(), "???");
}
Пример #7
0
void LuaScriptEngine::executeString(const std::string& buffer)
{
	executeBuffer(buffer.c_str(), buffer.size(), buffer.c_str());
}