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; }
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); } } }
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; }
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; } } }
bool Context::executeBuffer(const String& buffer) const { return executeBuffer(buffer, "?"); }
bool LuaScriptEngine::executeString(const Common::String &code) { return executeBuffer((const byte *)code.c_str(), code.size(), "???"); }
void LuaScriptEngine::executeString(const std::string& buffer) { executeBuffer(buffer.c_str(), buffer.size(), buffer.c_str()); }