More lighting, Windows builds (WIP)
This commit is contained in:
parent
c02d34227a
commit
d7ea3bb62e
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -1,3 +1,6 @@
|
||||
[submodule "dependencies/microtar"]
|
||||
path = dependencies/microtar
|
||||
url = https://github.com/MrLetsplay2003/microtar.git
|
||||
[submodule "dependencies/openvr"]
|
||||
path = dependencies/openvr
|
||||
url = https://github.com/ValveSoftware/openvr
|
||||
|
@ -4,11 +4,21 @@ project(KekEngine VERSION 1.0)
|
||||
|
||||
option(BUILD_SHARED_LIBS "Build as a shared library" ON)
|
||||
option(KEKENGINE_DEBUG "Build with debug information" OFF)
|
||||
option(KEKENGINE_VR "Include VR support" OFF)
|
||||
option(KEKENGINE_BUILD_KEKGAME "Build kekgame" OFF)
|
||||
|
||||
if(UNIX)
|
||||
set(KEKENGINE_TARGET_PLATFORM Linux)
|
||||
endif()
|
||||
if(WIN32)
|
||||
set(KEKENGINE_TARGET_PLATFORM Windows)
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
endif()
|
||||
|
||||
message("Build shared libs: ${BUILD_SHARED_LIBS}")
|
||||
message("Debug: ${KEKENGINE_DEBUG}")
|
||||
message("Build kekgame: ${KEKENGINE_BUILD_KEKGAME}")
|
||||
message("Target platform: ${KEKENGINE_TARGET_PLATFORM}")
|
||||
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
@ -49,14 +59,39 @@ add_custom_command(TARGET kekengine_res PRE_BUILD
|
||||
add_library(kekengine ${KEKENGINE_SOURCE_FILES})
|
||||
add_dependencies(kekengine kekengine_res)
|
||||
|
||||
target_link_libraries(kekengine PUBLIC glfw GLEW GL microtar)
|
||||
target_include_directories(kekengine PRIVATE "src/kekengine/include")
|
||||
target_compile_definitions(kekengine PUBLIC KEKENGINE_TARGET_LINUX)
|
||||
target_link_libraries(kekengine PUBLIC microtar)
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
|
||||
target_link_libraries(kekengine PUBLIC ${GTK3_LIBRARIES})
|
||||
target_include_directories(kekengine PRIVATE ${GTK3_INCLUDE_DIRS})
|
||||
if(UNIX)
|
||||
target_link_libraries(kekengine PUBLIC glfw GLEW GL)
|
||||
|
||||
# GTK
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
|
||||
target_link_libraries(kekengine PUBLIC ${GTK3_LIBRARIES})
|
||||
target_include_directories(kekengine PRIVATE ${GTK3_INCLUDE_DIRS})
|
||||
endif()
|
||||
if(WIN32)
|
||||
target_link_libraries(kekengine PUBLIC glfw3 glew32s opengl32)
|
||||
endif()
|
||||
|
||||
if(${KEKENGINE_VR})
|
||||
target_link_directories(kekengine PUBLIC "dependencies/openvr/bin/linux64")
|
||||
target_link_libraries(kekengine PUBLIC openvr_api)
|
||||
endif()
|
||||
|
||||
target_include_directories(kekengine PRIVATE "src/kekengine/include")
|
||||
|
||||
if(UNIX)
|
||||
target_compile_definitions(kekengine PUBLIC KEKENGINE_TARGET_LINUX)
|
||||
endif()
|
||||
if(WIN32)
|
||||
target_compile_definitions(kekengine PUBLIC KEKENGINE_TARGET_WINDOWS)
|
||||
endif()
|
||||
|
||||
if(${KEKENGINE_VR})
|
||||
target_compile_definitions(kekengine PUBLIC KEKENGINE_VR)
|
||||
target_include_directories(kekengine PRIVATE "dependencies/openvr/headers")
|
||||
endif()
|
||||
|
||||
if(${KEKENGINE_BUILD_KEKGAME})
|
||||
# kekgame resources
|
||||
|
@ -2,3 +2,4 @@
|
||||
- OpenGL, GLEW, GLFW
|
||||
- stb_image, stb_image_write
|
||||
- microtar (included)
|
||||
- openvr (SteamVR), if compiling with KEKENGINE_VR
|
||||
|
1
dependencies/openvr
vendored
Submodule
1
dependencies/openvr
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 08de3821dfd3aa46f778376680c68f33b9fdcb6c
|
@ -219,17 +219,27 @@ int start() {
|
||||
|
||||
LightList *lights = kekData.activeScene->lights;
|
||||
|
||||
std::vector<Light *> shaderLights;
|
||||
std::vector<Light *> shaderLights; // TODO: Maybe don't compute on every frame
|
||||
|
||||
for(PointLight *light : lights->point) {
|
||||
if(glm::abs(light->getPosition() - kekData.activeCamera->getPosition()).length() < 10) {
|
||||
if(glm::length2(glm::abs(light->getPosition() - kekData.activeCamera->getPosition())) < KEK_LIGHT_MAX_DISTANCE_SQUARED) {
|
||||
shaderLights.push_back(light);
|
||||
}
|
||||
}
|
||||
|
||||
glUniform1i(glGetUniformLocation(kekData.shader->id, "numPointLights"), 1);
|
||||
for(DirectionalLight *light : lights->directional) {
|
||||
shaderLights.push_back(light);
|
||||
}
|
||||
|
||||
for(SpotLight *light : lights->spot) {
|
||||
if(glm::length2(glm::abs(light->getPosition() - kekData.activeCamera->getPosition())) < KEK_LIGHT_MAX_DISTANCE_SQUARED) {
|
||||
shaderLights.push_back(light);
|
||||
}
|
||||
}
|
||||
|
||||
unsigned int i = 0;
|
||||
int numPointLights = 0, numDirectionalLights = 0, numSpotLights = 0;
|
||||
|
||||
for(Light *light : shaderLights) {
|
||||
std::string prefix = "lights[" + std::to_string(i) + "].";
|
||||
|
||||
@ -237,18 +247,39 @@ int start() {
|
||||
case LightType::POINT:
|
||||
{
|
||||
PointLight *l = (PointLight *) light;
|
||||
glUniform3fv(glGetUniformLocation(kekData.shader->id, (prefix + "position").c_str()), 1, glm::value_ptr(l->getPosition()));
|
||||
glUniform3fv(glGetUniformLocation(kekData.shader->id, (prefix + "color").c_str()), 1, glm::value_ptr(l->color));
|
||||
glUniform3fv(glGetUniformLocation(kekData.shader->id, (prefix + "position").c_str()), 1, glm::value_ptr(l->getPosition()));
|
||||
glUniform3fv(glGetUniformLocation(kekData.shader->id, (prefix + "attenuation").c_str()), 1, glm::value_ptr(glm::vec3(l->constant, l->linear, l->quadratic)));
|
||||
numPointLights++;
|
||||
break;
|
||||
}
|
||||
case LightType::DIRECTIONAL:
|
||||
case LightType::SPOT:
|
||||
{
|
||||
DirectionalLight *l = (DirectionalLight *) light;
|
||||
glUniform3fv(glGetUniformLocation(kekData.shader->id, (prefix + "color").c_str()), 1, glm::value_ptr(l->color));
|
||||
glUniform3fv(glGetUniformLocation(kekData.shader->id, (prefix + "direction").c_str()), 1, glm::value_ptr(l->direction));
|
||||
numDirectionalLights++;
|
||||
break;
|
||||
}
|
||||
case LightType::SPOT:
|
||||
{
|
||||
SpotLight *l = (SpotLight *) light;
|
||||
glUniform3fv(glGetUniformLocation(kekData.shader->id, (prefix + "color").c_str()), 1, glm::value_ptr(l->color));
|
||||
glUniform3fv(glGetUniformLocation(kekData.shader->id, (prefix + "position").c_str()), 1, glm::value_ptr(l->getPosition()));
|
||||
glUniform3fv(glGetUniformLocation(kekData.shader->id, (prefix + "direction").c_str()), 1, glm::value_ptr(l->direction));
|
||||
glUniform3fv(glGetUniformLocation(kekData.shader->id, (prefix + "attenuation").c_str()), 1, glm::value_ptr(glm::vec3(l->constant, l->linear, l->quadratic)));
|
||||
numSpotLights++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
glUniform1i(glGetUniformLocation(kekData.shader->id, "numPointLights"), numPointLights);
|
||||
glUniform1i(glGetUniformLocation(kekData.shader->id, "numDirectionalLights"), numDirectionalLights);
|
||||
glUniform1i(glGetUniformLocation(kekData.shader->id, "numSpotLights"), numSpotLights);
|
||||
|
||||
if(kekData.activeScene) kekData.activeScene->draw(kekData.shader);
|
||||
|
||||
// Swap buffers and poll window events
|
||||
|
@ -13,10 +13,10 @@ Light::~Light() {
|
||||
|
||||
}
|
||||
|
||||
PointLight::PointLight(glm::vec3 color, float constantFalloff, float linearFalloff, float quadraticFalloff): Light(color) {
|
||||
this->constant = constantFalloff;
|
||||
this->linear = linearFalloff;
|
||||
this->quadratic = quadraticFalloff;
|
||||
PointLight::PointLight(glm::vec3 color, float constant, float linear, float quadratic): Light(color) {
|
||||
this->constant = constant;
|
||||
this->linear = linear;
|
||||
this->quadratic = quadratic;
|
||||
}
|
||||
|
||||
PointLight::~PointLight() {
|
||||
@ -27,17 +27,50 @@ LightType PointLight::getType() {
|
||||
return LightType::POINT;
|
||||
}
|
||||
|
||||
DirectionalLight::DirectionalLight(glm::vec3 color, glm::vec3 direction): Light(color) {
|
||||
this->direction = direction;
|
||||
}
|
||||
|
||||
DirectionalLight::~DirectionalLight() {
|
||||
|
||||
}
|
||||
|
||||
LightType DirectionalLight::getType() {
|
||||
return LightType::DIRECTIONAL;
|
||||
}
|
||||
|
||||
void DirectionalLight::lookAt(glm::vec3 direction){
|
||||
this->direction = direction;
|
||||
}
|
||||
|
||||
SpotLight::SpotLight(glm::vec3 color, glm::vec3 direction, float constant, float linear, float quadratic): Light(color) {
|
||||
this->direction = direction;
|
||||
this->constant = constant;
|
||||
this->linear = linear;
|
||||
this->quadratic = quadratic;
|
||||
}
|
||||
|
||||
SpotLight::~SpotLight() {
|
||||
|
||||
}
|
||||
|
||||
LightType SpotLight::getType() {
|
||||
return LightType::SPOT;
|
||||
}
|
||||
|
||||
void SpotLight::lookAt(glm::vec3 direction) {
|
||||
this->direction = direction;
|
||||
}
|
||||
|
||||
LightList::LightList() {
|
||||
point = std::vector<PointLight *>();
|
||||
//directional = std::vector<DirectionalLight *>();
|
||||
//spot = std::vector<SpotLight *>();
|
||||
|
||||
}
|
||||
|
||||
void LightList::add(Light *light) {
|
||||
switch(light->getType()) {
|
||||
case LightType::POINT: point.push_back((PointLight *) light); break;
|
||||
//case LightType::DIRECTIONAL: directional.push_back((DirectionalLight *) light); break;
|
||||
//case LightType::SPOT: spot.push_back((SpotLight *) light); break;
|
||||
case LightType::DIRECTIONAL: directional.push_back((DirectionalLight *) light); break;
|
||||
case LightType::SPOT: spot.push_back((SpotLight *) light); break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -14,3 +14,6 @@
|
||||
|
||||
#define KEK_LIGHT_DEFAULT_AMBIENT_STRENGTH 0.05f
|
||||
#define KEK_LIGHT_DEFAULT_SPECULAR_STRENGTH 0.1f
|
||||
|
||||
#define KEK_LIGHT_MAX_DISTANCE 30
|
||||
#define KEK_LIGHT_MAX_DISTANCE_SQUARED (KEK_LIGHT_MAX_DISTANCE * KEK_LIGHT_MAX_DISTANCE)
|
||||
|
@ -39,12 +39,43 @@ public:
|
||||
|
||||
};
|
||||
|
||||
class DirectionalLight: public Light {
|
||||
|
||||
public:
|
||||
glm::vec3 direction;
|
||||
|
||||
DirectionalLight(glm::vec3 color, glm::vec3 direction);
|
||||
|
||||
~DirectionalLight();
|
||||
|
||||
LightType getType();
|
||||
|
||||
void lookAt(glm::vec3 direction);
|
||||
|
||||
};
|
||||
|
||||
class SpotLight: public Light, public DefaultObject {
|
||||
|
||||
public:
|
||||
glm::vec3 direction;
|
||||
float constant, linear, quadratic;
|
||||
|
||||
SpotLight(glm::vec3 color, glm::vec3 direction, float constantFalloff, float linearFalloff, float quadraticFalloff);
|
||||
|
||||
~SpotLight();
|
||||
|
||||
LightType getType();
|
||||
|
||||
void lookAt(glm::vec3 direction);
|
||||
|
||||
};
|
||||
|
||||
class LightList {
|
||||
|
||||
public:
|
||||
std::vector<PointLight *> point;
|
||||
//std::vector<DirectionalLight *> directional;
|
||||
//std::vector<SpotLight *> spot;
|
||||
std::vector<DirectionalLight *> directional;
|
||||
std::vector<SpotLight *> spot;
|
||||
|
||||
LightList();
|
||||
|
||||
|
@ -23,3 +23,52 @@ vec3 calcPointLight(Light light, vec3 normal, vec3 fragPos, vec3 viewDir, vec2 t
|
||||
|
||||
return ambient + (1.0 - shadow) * (diffuse + specular);
|
||||
}
|
||||
|
||||
vec3 calcDirectionalLight(Light light, vec3 normal, vec3 viewDir, vec2 texCoord, float shadow) {
|
||||
vec3 lightDir = normalize(-light.direction);
|
||||
vec3 halfwayDir = normalize(lightDir + viewDir);
|
||||
|
||||
// Ambient
|
||||
vec3 ambient = light.color * vec3(texture(material.diffuse, texCoord));
|
||||
|
||||
// Diffuse
|
||||
float diff = max(dot(normal, lightDir), 0.0);
|
||||
vec3 diffuse = light.color * diff * vec3(texture(material.diffuse, texCoord));
|
||||
|
||||
// Specular
|
||||
float spec = pow(max(dot(normal, halfwayDir), 0.0), material.shininess);
|
||||
vec3 specular = light.color * spec * vec3(texture(material.specular, texCoord));
|
||||
|
||||
return ambient + (1.0 - shadow) * (diffuse + specular);
|
||||
}
|
||||
|
||||
vec3 calcSpotLight(Light light, vec3 normal, vec3 fragPos, vec3 viewDir, vec2 texCoord, float shadow) {
|
||||
vec3 lightDir = normalize(light.position - fragPos);
|
||||
vec3 halfwayDir = normalize(lightDir + viewDir);
|
||||
|
||||
// Ambient
|
||||
vec3 ambient = light.color * vec3(texture(material.diffuse, texCoord));
|
||||
|
||||
// Diffuse
|
||||
float diff = max(dot(normal, lightDir), 0.0);
|
||||
vec3 diffuse = light.color * diff * vec3(texture(material.diffuse, texCoord));
|
||||
|
||||
// Specular
|
||||
float spec = pow(max(dot(normal, halfwayDir), 0.0), material.shininess);
|
||||
vec3 specular = light.color * spec * vec3(texture(material.specular, texCoord));
|
||||
|
||||
// Intensity
|
||||
float theta = dot(lightDir, normalize(-light.direction));
|
||||
float epsilon = light.cutoff.x - light.cutoff.y;
|
||||
float intensity = clamp((theta - light.cutoff.y) / epsilon, 0.0, 1.0);
|
||||
|
||||
// Attenuation
|
||||
float dist = length(light.position - fragPos);
|
||||
float attenuation = 1.0 / (light.attenuation.x + light.attenuation.y * dist + light.attenuation.z * (dist * dist));
|
||||
|
||||
ambient *= intensity * attenuation;
|
||||
diffuse *= intensity * attenuation;
|
||||
specular *= intensity * attenuation;
|
||||
|
||||
return ambient + (1.0 - shadow) * (diffuse + specular);
|
||||
}
|
||||
|
@ -6,10 +6,10 @@ struct Material {
|
||||
};
|
||||
|
||||
struct Light {
|
||||
vec3 color;
|
||||
vec3 position;
|
||||
vec3 direction;
|
||||
vec3 color;
|
||||
vec3 attenuation;
|
||||
vec2 cutoff;
|
||||
vec3 attenuation; // constant, linear, quadratic
|
||||
vec2 cutoff; // inner, outer
|
||||
mat4 lightSpaceMatrix;
|
||||
};
|
||||
|
@ -10,6 +10,8 @@ in VS_OUT {
|
||||
|
||||
uniform Light lights[8];
|
||||
uniform int numPointLights;
|
||||
uniform int numDirectionalLights;
|
||||
uniform int numSpotLights;
|
||||
|
||||
uniform Material material;
|
||||
|
||||
@ -35,5 +37,13 @@ void main() {
|
||||
result += calcPointLight(lights[i], normal, fs_in.fragmentPosition, viewDir, fs_in.textureCoordinate, 0.0);
|
||||
}
|
||||
|
||||
for(int i = 0; i < numDirectionalLights; i++) {
|
||||
result += calcDirectionalLight(lights[numPointLights + i], normal, viewDir, fs_in.textureCoordinate, 0.0);
|
||||
}
|
||||
|
||||
for(int i = 0; i < numSpotLights; i++) {
|
||||
result += calcSpotLight(lights[numPointLights + numDirectionalLights + i], normal, fs_in.fragmentPosition, viewDir, fs_in.textureCoordinate, 0.0);
|
||||
}
|
||||
|
||||
color = vec4(pow(result, vec3(1.0 / gamma)), 1.0);
|
||||
}
|
||||
|
@ -26,8 +26,11 @@ int main(int argc, char **argv) {
|
||||
scene->addObject(test2);
|
||||
}
|
||||
|
||||
PointLight *light = new PointLight(glm::vec3(1), 1, 1, 1);
|
||||
scene->lights->add(light);
|
||||
//PointLight *light = new PointLight(glm::vec3(1), 1, 1, 1);
|
||||
//scene->lights->add(light);
|
||||
|
||||
DirectionalLight *l = new DirectionalLight(glm::vec3(1), glm::vec3(1, -1, 1));
|
||||
scene->lights->add(l);
|
||||
|
||||
Engine::setActiveScene(scene);
|
||||
|
||||
|
19
toolchains/linux-mingw-windows.cmake
Normal file
19
toolchains/linux-mingw-windows.cmake
Normal file
@ -0,0 +1,19 @@
|
||||
set(CMAKE_SYSTEM_NAME Windows)
|
||||
|
||||
set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
|
||||
set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
|
||||
|
||||
set(CMAKE_C_FLAGS -w)
|
||||
set(CMAKE_CXX_FLAGS -w)
|
||||
|
||||
set(KEKENGINE_TARGET_PLATFORM Windows)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32/)
|
||||
link_directories(windows/lib/)
|
||||
include_directories(windows/include/)
|
||||
link_directories(dependencies/openvr/bin/win64)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
1
windows/.gitignore
vendored
Normal file
1
windows/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
include/
|
BIN
windows/glew32.dll
Normal file
BIN
windows/glew32.dll
Normal file
Binary file not shown.
BIN
windows/glfw3.dll
Normal file
BIN
windows/glfw3.dll
Normal file
Binary file not shown.
176
windows/lib/OpenAL32.def
Normal file
176
windows/lib/OpenAL32.def
Normal file
@ -0,0 +1,176 @@
|
||||
EXPORTS
|
||||
alAuxiliaryEffectSlotPlaySOFT
|
||||
alAuxiliaryEffectSlotPlayvSOFT
|
||||
alAuxiliaryEffectSlotStopSOFT
|
||||
alAuxiliaryEffectSlotStopvSOFT
|
||||
alAuxiliaryEffectSlotf
|
||||
alAuxiliaryEffectSlotfv
|
||||
alAuxiliaryEffectSloti
|
||||
alAuxiliaryEffectSlotiv
|
||||
alBuffer3f
|
||||
alBuffer3i
|
||||
alBufferCallbackSOFT
|
||||
alBufferData
|
||||
alBufferSamplesSOFT
|
||||
alBufferStorageSOFT
|
||||
alBufferSubDataSOFT
|
||||
alBufferSubSamplesSOFT
|
||||
alBufferf
|
||||
alBufferfv
|
||||
alBufferi
|
||||
alBufferiv
|
||||
alDeferUpdatesSOFT
|
||||
alDeleteAuxiliaryEffectSlots
|
||||
alDeleteBuffers
|
||||
alDeleteEffects
|
||||
alDeleteFilters
|
||||
alDeleteSources
|
||||
alDisable
|
||||
alDistanceModel
|
||||
alDopplerFactor
|
||||
alDopplerVelocity
|
||||
alEffectf
|
||||
alEffectfv
|
||||
alEffecti
|
||||
alEffectiv
|
||||
alEnable
|
||||
alEventCallbackSOFT
|
||||
alEventControlSOFT
|
||||
alFilterf
|
||||
alFilterfv
|
||||
alFilteri
|
||||
alFilteriv
|
||||
alFlushMappedBufferSOFT
|
||||
alGenAuxiliaryEffectSlots
|
||||
alGenBuffers
|
||||
alGenEffects
|
||||
alGenFilters
|
||||
alGenSources
|
||||
alGetAuxiliaryEffectSlotf
|
||||
alGetAuxiliaryEffectSlotfv
|
||||
alGetAuxiliaryEffectSloti
|
||||
alGetAuxiliaryEffectSlotiv
|
||||
alGetBoolean
|
||||
alGetBooleanv
|
||||
alGetBuffer3PtrSOFT
|
||||
alGetBuffer3f
|
||||
alGetBuffer3i
|
||||
alGetBufferPtrSOFT
|
||||
alGetBufferPtrvSOFT
|
||||
alGetBufferSamplesSOFT
|
||||
alGetBufferf
|
||||
alGetBufferfv
|
||||
alGetBufferi
|
||||
alGetBufferiv
|
||||
alGetDouble
|
||||
alGetDoublev
|
||||
alGetEffectf
|
||||
alGetEffectfv
|
||||
alGetEffecti
|
||||
alGetEffectiv
|
||||
alGetEnumValue
|
||||
alGetError
|
||||
alGetFilterf
|
||||
alGetFilterfv
|
||||
alGetFilteri
|
||||
alGetFilteriv
|
||||
alGetFloat
|
||||
alGetFloatv
|
||||
alGetInteger
|
||||
alGetInteger64SOFT
|
||||
alGetInteger64vSOFT
|
||||
alGetIntegerv
|
||||
alGetListener3f
|
||||
alGetListener3i
|
||||
alGetListenerf
|
||||
alGetListenerfv
|
||||
alGetListeneri
|
||||
alGetListeneriv
|
||||
alGetPointerSOFT
|
||||
alGetPointervSOFT
|
||||
alGetProcAddress
|
||||
alGetSource3dSOFT
|
||||
alGetSource3f
|
||||
alGetSource3i
|
||||
alGetSource3i64SOFT
|
||||
alGetSourcedSOFT
|
||||
alGetSourcedvSOFT
|
||||
alGetSourcef
|
||||
alGetSourcefv
|
||||
alGetSourcei
|
||||
alGetSourcei64SOFT
|
||||
alGetSourcei64vSOFT
|
||||
alGetSourceiv
|
||||
alGetString
|
||||
alGetStringiSOFT
|
||||
alIsAuxiliaryEffectSlot
|
||||
alIsBuffer
|
||||
alIsBufferFormatSupportedSOFT
|
||||
alIsEffect
|
||||
alIsEnabled
|
||||
alIsExtensionPresent
|
||||
alIsFilter
|
||||
alIsSource
|
||||
alListener3f
|
||||
alListener3i
|
||||
alListenerf
|
||||
alListenerfv
|
||||
alListeneri
|
||||
alListeneriv
|
||||
alMapBufferSOFT
|
||||
alProcessUpdatesSOFT
|
||||
alSource3dSOFT
|
||||
alSource3f
|
||||
alSource3i
|
||||
alSource3i64SOFT
|
||||
alSourcePause
|
||||
alSourcePausev
|
||||
alSourcePlay
|
||||
alSourcePlayv
|
||||
alSourceQueueBuffers
|
||||
alSourceRewind
|
||||
alSourceRewindv
|
||||
alSourceStop
|
||||
alSourceStopv
|
||||
alSourceUnqueueBuffers
|
||||
alSourcedSOFT
|
||||
alSourcedvSOFT
|
||||
alSourcef
|
||||
alSourcefv
|
||||
alSourcei
|
||||
alSourcei64SOFT
|
||||
alSourcei64vSOFT
|
||||
alSourceiv
|
||||
alSpeedOfSound
|
||||
alUnmapBufferSOFT
|
||||
alcCaptureCloseDevice
|
||||
alcCaptureOpenDevice
|
||||
alcCaptureSamples
|
||||
alcCaptureStart
|
||||
alcCaptureStop
|
||||
alcCloseDevice
|
||||
alcCreateContext
|
||||
alcDestroyContext
|
||||
alcDevicePauseSOFT
|
||||
alcDeviceResumeSOFT
|
||||
alcGetContextsDevice
|
||||
alcGetCurrentContext
|
||||
alcGetEnumValue
|
||||
alcGetError
|
||||
alcGetInteger64vSOFT
|
||||
alcGetIntegerv
|
||||
alcGetProcAddress
|
||||
alcGetString
|
||||
alcGetStringiSOFT
|
||||
alcGetThreadContext
|
||||
alcIsExtensionPresent
|
||||
alcIsRenderFormatSupportedSOFT
|
||||
alcLoopbackOpenDeviceSOFT
|
||||
alcMakeContextCurrent
|
||||
alcOpenDevice
|
||||
alcProcessContext
|
||||
alcRenderSamplesSOFT
|
||||
alcResetDeviceSOFT
|
||||
alcSetThreadContext
|
||||
alcSuspendContext
|
||||
alsoft_get_version
|
BIN
windows/lib/OpenAL32.lib
Normal file
BIN
windows/lib/OpenAL32.lib
Normal file
Binary file not shown.
BIN
windows/lib/glew32.lib
Normal file
BIN
windows/lib/glew32.lib
Normal file
Binary file not shown.
BIN
windows/lib/glew32s.lib
Normal file
BIN
windows/lib/glew32s.lib
Normal file
Binary file not shown.
BIN
windows/lib/glfw3.dll
Normal file
BIN
windows/lib/glfw3.dll
Normal file
Binary file not shown.
BIN
windows/lib/libOpenAL32.dll.a
Normal file
BIN
windows/lib/libOpenAL32.dll.a
Normal file
Binary file not shown.
BIN
windows/lib/libgdi32.a
Normal file
BIN
windows/lib/libgdi32.a
Normal file
Binary file not shown.
BIN
windows/lib/libglfw3.a
Normal file
BIN
windows/lib/libglfw3.a
Normal file
Binary file not shown.
BIN
windows/lib/libglfw3dll.a
Normal file
BIN
windows/lib/libglfw3dll.a
Normal file
Binary file not shown.
3
windows/mingw_linux.sh
Executable file
3
windows/mingw_linux.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
FILES="../src/cpp/gameobject.cpp ../src/cpp/light.cpp ../src/cpp/material.cpp ../src/cpp/object.cpp ../src/cpp/scene.cpp ../src/cpp/shader.cpp ../src/cpp/texture.cpp ../src/cpp/utils.cpp ../src/cpp/engine.cpp ../src/cpp/input.cpp ../src/cpp/game.cpp"
|
||||
x86_64-w64-mingw32-g++ -static-libstdc++ -static-libgcc -I../src/headers/ $FILES -lglfw3 -lopengl32 -lglew32 -lgdi32 -Wl,-Bstatic -lstdc++ -lwinpthread -Wl,-Bdynamic -mwindows -I./include/ -L./lib/ -o kek.exe
|
153
windows/msys-packages.txt
Normal file
153
windows/msys-packages.txt
Normal file
@ -0,0 +1,153 @@
|
||||
base 2020.12-1
|
||||
bash 5.1.008-1
|
||||
bash-completion 2.11-1
|
||||
brotli 1.0.9-2
|
||||
bsdtar 3.5.2-1
|
||||
bzip2 1.0.8-3
|
||||
ca-certificates 20210119-3
|
||||
coreutils 8.32-2
|
||||
curl 7.80.0-3
|
||||
dash 0.5.11.5-1
|
||||
db 5.3.28-3
|
||||
file 5.41-2
|
||||
filesystem 2021.11-2
|
||||
findutils 4.8.0-1
|
||||
gawk 5.1.0-2
|
||||
gcc-libs 11.2.0-3
|
||||
gdbm 1.22-1
|
||||
getent 2.18.90-3
|
||||
gettext 0.21-1
|
||||
glib2 2.68.4-1
|
||||
gmp 6.2.1-1
|
||||
gnupg 2.2.32-2
|
||||
grep 1~3.0-3
|
||||
gzip 1.11-1
|
||||
heimdal-libs 7.7.0-3
|
||||
icu 70.1-1
|
||||
inetutils 1.9.4-3
|
||||
info 6.8-3
|
||||
less 590-1
|
||||
libargp 20110921-3
|
||||
libasprintf 0.21-1
|
||||
libassuan 2.5.5-1
|
||||
libbz2 1.0.8-3
|
||||
libcrypt 2.1-3
|
||||
libcurl 7.80.0-3
|
||||
libdb 5.3.28-3
|
||||
libedit 20210910_3.1-1
|
||||
libexpat 2.4.3-1
|
||||
libffi 3.3-1
|
||||
libgcrypt 1.9.4-1
|
||||
libgdbm 1.22-1
|
||||
libgettextpo 0.21-1
|
||||
libgnutls 3.7.2-1
|
||||
libgpg-error 1.43-1
|
||||
libgpgme 1.16.0-1
|
||||
libhogweed 3.7.3-1
|
||||
libiconv 1.16-2
|
||||
libidn2 2.3.2-1
|
||||
libintl 0.21-1
|
||||
libksba 1.6.0-1
|
||||
liblz4 1.9.3-1
|
||||
liblzma 5.2.5-1
|
||||
libnettle 3.7.3-1
|
||||
libnghttp2 1.46.0-1
|
||||
libnpth 1.6-1
|
||||
libopenssl 1.1.1.m-1
|
||||
libp11-kit 0.24.0-1
|
||||
libpcre 8.45-1
|
||||
libpcre2_8 10.37-1
|
||||
libpsl 0.21.1-2
|
||||
libreadline 8.1.001-1
|
||||
libsqlite 3.36.0-3
|
||||
libssh2 1.10.0-1
|
||||
libtasn1 4.18.0-2
|
||||
libunistring 0.9.10-1
|
||||
libutil-linux 2.35.2-1
|
||||
libxml2 2.9.12-3
|
||||
libxslt 1.1.34-4
|
||||
libzstd 1.5.1-1
|
||||
mingw-w64-x86_64-binutils 2.37-4
|
||||
mingw-w64-x86_64-bzip2 1.0.8-2
|
||||
mingw-w64-x86_64-ca-certificates 20210119-1
|
||||
mingw-w64-x86_64-crt-git 9.0.0.6373.5be8fcd83-1
|
||||
mingw-w64-x86_64-expat 2.4.3-1
|
||||
mingw-w64-x86_64-gcc 11.2.0-7
|
||||
mingw-w64-x86_64-gcc-ada 11.2.0-7
|
||||
mingw-w64-x86_64-gcc-fortran 11.2.0-7
|
||||
mingw-w64-x86_64-gcc-libgfortran 11.2.0-7
|
||||
mingw-w64-x86_64-gcc-libs 11.2.0-7
|
||||
mingw-w64-x86_64-gcc-objc 11.2.0-7
|
||||
mingw-w64-x86_64-gdb 11.1-2
|
||||
mingw-w64-x86_64-gdb-multiarch 11.1-2
|
||||
mingw-w64-x86_64-gettext 0.21-3
|
||||
mingw-w64-x86_64-glew 2.2.0-2
|
||||
mingw-w64-x86_64-glfw 3.3.6-1
|
||||
mingw-w64-x86_64-glm 0.9.9.8-1
|
||||
mingw-w64-x86_64-gmp 6.2.1-3
|
||||
mingw-w64-x86_64-headers-git 9.0.0.6373.5be8fcd83-1
|
||||
mingw-w64-x86_64-isl 0.24-1
|
||||
mingw-w64-x86_64-libffi 3.3-4
|
||||
mingw-w64-x86_64-libgccjit 11.2.0-7
|
||||
mingw-w64-x86_64-libiconv 1.16-2
|
||||
mingw-w64-x86_64-libmangle-git 9.0.0.6373.5be8fcd83-1
|
||||
mingw-w64-x86_64-libsystre 1.0.1-4
|
||||
mingw-w64-x86_64-libtasn1 4.18.0-1
|
||||
mingw-w64-x86_64-libtre-git r128.6fb7206-2
|
||||
mingw-w64-x86_64-libwinpthread-git 9.0.0.6373.5be8fcd83-1
|
||||
mingw-w64-x86_64-libxml2 2.9.12-5
|
||||
mingw-w64-x86_64-llvm 13.0.0-5
|
||||
mingw-w64-x86_64-make 4.3-1
|
||||
mingw-w64-x86_64-mesa 21.3.4-1
|
||||
mingw-w64-x86_64-mpc 1.2.1-1
|
||||
mingw-w64-x86_64-mpdecimal 2.5.1-1
|
||||
mingw-w64-x86_64-mpfr 4.1.0.p13-1
|
||||
mingw-w64-x86_64-ncurses 6.3-3
|
||||
mingw-w64-x86_64-openssl 1.1.1.m-1
|
||||
mingw-w64-x86_64-p11-kit 0.24.1-1
|
||||
mingw-w64-x86_64-pkgconf 1.8.0-2
|
||||
mingw-w64-x86_64-python 3.9.7-4
|
||||
mingw-w64-x86_64-readline 8.1.001-1
|
||||
mingw-w64-x86_64-sqlite3 3.37.2-1
|
||||
mingw-w64-x86_64-stb r1943.c9064e3-2
|
||||
mingw-w64-x86_64-tcl 8.6.11-5
|
||||
mingw-w64-x86_64-termcap 1.3.1-6
|
||||
mingw-w64-x86_64-tk 8.6.11.1-2
|
||||
mingw-w64-x86_64-tools-git 9.0.0.6373.5be8fcd83-1
|
||||
mingw-w64-x86_64-tzdata 2021e-1
|
||||
mingw-w64-x86_64-vulkan-headers 1.2.194-1
|
||||
mingw-w64-x86_64-vulkan-loader 1.2.194-1
|
||||
mingw-w64-x86_64-windows-default-manifest 6.4-3
|
||||
mingw-w64-x86_64-winpthreads-git 9.0.0.6373.5be8fcd83-1
|
||||
mingw-w64-x86_64-winstorecompat-git 9.0.0.6373.5be8fcd83-1
|
||||
mingw-w64-x86_64-xxhash 0.8.1-1
|
||||
mingw-w64-x86_64-xz 5.2.5-2
|
||||
mingw-w64-x86_64-zlib 1.2.11-9
|
||||
mingw-w64-x86_64-zstd 1.5.2-1
|
||||
mintty 1~3.5.2-1
|
||||
mpfr 4.1.0-1
|
||||
msys2-keyring 1~20211228-1
|
||||
msys2-launcher 1.4-1
|
||||
msys2-runtime 3.3.3-7
|
||||
nano 5.9-1
|
||||
ncurses 6.2-2
|
||||
nettle 3.7.3-1
|
||||
openssl 1.1.1.m-1
|
||||
p11-kit 0.24.0-1
|
||||
pacman 6.0.1-9
|
||||
pacman-contrib 1.4.0-2
|
||||
pacman-mirrors 20211230-1
|
||||
perl 5.32.1-2
|
||||
pinentry 1.2.0-1
|
||||
rebase 4.5.0-1
|
||||
sed 4.8-2
|
||||
tcl 8.6.10-1
|
||||
tftp-hpa 5.2-4
|
||||
time 1.9-2
|
||||
tzcode 2021e-1
|
||||
util-linux 2.35.2-1
|
||||
wget 1.21.2-1
|
||||
which 2.21-3
|
||||
xz 5.2.5-1
|
||||
zlib 1.2.11-1
|
||||
zstd 1.5.1-1
|
4
windows/msys2_windows.sh
Normal file
4
windows/msys2_windows.sh
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
export PATH=$PATH:/mingw64/bin/
|
||||
FILES="../src/cpp/gameobject.cpp ../src/cpp/light.cpp ../src/cpp/material.cpp ../src/cpp/object.cpp ../src/cpp/scene.cpp ../src/cpp/shader.cpp ../src/cpp/texture.cpp ../src/cpp/utils.cpp ../src/cpp/engine.cpp ../src/cpp/input.cpp ../src/cpp/game.cpp"
|
||||
g++ -static-libgcc -static-libstdc++ -I../src/headers/ $FILES -lglfw3 -lopengl32 -lglew32 -Wl,-Bstatic -lstdc++ -lpthread -Wl,-Bdynamic -mwindows -o kek.exe
|
Loading…
Reference in New Issue
Block a user