mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-16 11:06:49 +01:00
0e45984fa0
The internal function SDL_EGL_LoadLibrary() did not delete and remove a mostly uninitialized data structure if loading the library first failed. A later try to use EGL then skipped initialization and assumed it was previously successful because the data structure now already existed. This led to at least one crash in the internal function SDL_EGL_ChooseConfig() because a NULL pointer was dereferenced to make a call to eglBindAPI().
69 lines
2.6 KiB
Lua
Executable File
69 lines
2.6 KiB
Lua
Executable File
-- Copyright (C) 1997-2015 Sam Lantinga <slouken@libsdl.org>
|
|
--
|
|
-- This software is provided 'as-is', without any express or implied
|
|
-- warranty. In no event will the authors be held liable for any damages
|
|
-- arising from the use of this software.
|
|
--
|
|
-- Permission is granted to anyone to use this software for any purpose,
|
|
-- including commercial applications, and to alter it and redistribute it
|
|
-- freely.
|
|
--
|
|
-- Meta-build system using premake created and maintained by
|
|
-- Benjamin Henning <b.henning@digipen.edu>
|
|
|
|
--[[
|
|
sdl_gen_config.lua
|
|
|
|
Given a series of set configuration values from the project definitions,
|
|
this file contains a series of functions that generate valid preprocessor
|
|
definitions to enable or disable various features of the SDL2 library. These
|
|
definitions are pasted into a template SDL config header file, which is then
|
|
saved in the local directory and referenced to in generated project files.
|
|
|
|
This file depends on sdl_file.lua.
|
|
]]
|
|
|
|
-- The line that must exist in the template file in order to properly paste
|
|
-- the generated definitions.
|
|
local searchKey = "/%* Paste generated code here %*/\n"
|
|
|
|
local configFile, templateFileContents
|
|
local insertLocation
|
|
|
|
-- This function begins config header generation given the name of the generated
|
|
-- file and the name of the template file to use.
|
|
function startGeneration(file, template)
|
|
configFile = fileopen(file, "wt")
|
|
templateFileContents = readfile(template, "rt")
|
|
insertLocation = templateFileContents:find(searchKey)
|
|
if insertLocation then
|
|
configFile:write(templateFileContents:sub(1, insertLocation - 1))
|
|
end
|
|
end
|
|
|
|
-- Adds a table of configuration values to the generated file. Each
|
|
-- configuration line is wrapped around a preprocessor definition check, so they
|
|
-- can be manually overwritten by the developer if necessary. The definition
|
|
-- pastes string versions of both the key and the value on the line, where
|
|
-- either is allowed to be empty. That means the table stores key-value pairs.
|
|
function addConfig(tbl)
|
|
-- if no insert location, don't paste anything
|
|
if not insertLocation then return end
|
|
for k,v in pairs(tbl) do
|
|
configFile:print(0, "#ifndef " .. k)
|
|
configFile:print(0, "#define " .. tostring(k) .. " " .. tostring(v))
|
|
configFile:print(0, "#endif")
|
|
end
|
|
end
|
|
|
|
-- Finishes the generation and writes the remains of the template file into the
|
|
-- generated config file.
|
|
function endGeneration()
|
|
if insertLocation then
|
|
configFile:write(templateFileContents:sub(insertLocation + #searchKey - 2))
|
|
else -- write entire file since nothing is being pasted
|
|
configFile:write(templateFileContents)
|
|
end
|
|
configFile:close()
|
|
end
|