|
@@ -1069,6 +1069,13 @@ void rlglClose(void)
|
|
|
// Delete default white texture
|
|
|
glDeleteTextures(1, &whiteTexture);
|
|
|
TraceLog(INFO, "[TEX ID %i] Unloaded texture data (base white texture) from VRAM", whiteTexture);
|
|
|
+
|
|
|
+ // Unload lights
|
|
|
+ if (lightsCount > 0)
|
|
|
+ {
|
|
|
+ for (int i = 0; i < lightsCount; i++) free(lights[i]);
|
|
|
+ lightsCount = 0;
|
|
|
+ }
|
|
|
|
|
|
free(draws);
|
|
|
#endif
|
|
@@ -2292,37 +2299,6 @@ Light CreateLight(int type, Vector3 position, Color diffuse)
|
|
|
return light;
|
|
|
}
|
|
|
|
|
|
-// Draw all created lights in 3D world
|
|
|
-void DrawLights(void)
|
|
|
-{
|
|
|
- for (int i = 0; i < lightsCount; i++)
|
|
|
- {
|
|
|
- switch (lights[i]->type)
|
|
|
- {
|
|
|
- case LIGHT_POINT:
|
|
|
- {
|
|
|
- DrawSphereWires(lights[i]->position, 0.3f*lights[i]->intensity, 4, 8, (lights[i]->enabled ? lights[i]->diffuse : BLACK));
|
|
|
- Draw3DCircle(lights[i]->position, lights[i]->radius, 0.0f, (Vector3){ 0, 0, 0 }, (lights[i]->enabled ? lights[i]->diffuse : BLACK));
|
|
|
- Draw3DCircle(lights[i]->position, lights[i]->radius, 90.0f, (Vector3){ 1, 0, 0 }, (lights[i]->enabled ? lights[i]->diffuse : BLACK));
|
|
|
- Draw3DCircle(lights[i]->position, lights[i]->radius, 90.0f, (Vector3){ 0, 1, 0 }, (lights[i]->enabled ? lights[i]->diffuse : BLACK));
|
|
|
- } break;
|
|
|
- case LIGHT_DIRECTIONAL:
|
|
|
- {
|
|
|
- Draw3DLine(lights[i]->position, lights[i]->target, (lights[i]->enabled ? lights[i]->diffuse : BLACK));
|
|
|
- DrawSphereWires(lights[i]->position, 0.3f*lights[i]->intensity, 4, 8, (lights[i]->enabled ? lights[i]->diffuse : BLACK));
|
|
|
- DrawCubeWires(lights[i]->target, 0.3f, 0.3f, 0.3f, (lights[i]->enabled ? lights[i]->diffuse : BLACK));
|
|
|
- } break;
|
|
|
- case LIGHT_SPOT:
|
|
|
- {
|
|
|
- Draw3DLine(lights[i]->position, lights[i]->target, (lights[i]->enabled ? lights[i]->diffuse : BLACK));
|
|
|
- DrawCylinderWires(lights[i]->position, 0.0f, 0.3f*lights[i]->coneAngle/50, 0.6f, 5, (lights[i]->enabled ? lights[i]->diffuse : BLACK));
|
|
|
- DrawCubeWires(lights[i]->target, 0.3f, 0.3f, 0.3f, (lights[i]->enabled ? lights[i]->diffuse : BLACK));
|
|
|
- } break;
|
|
|
- default: break;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
// Destroy a light and take it out of the list
|
|
|
void DestroyLight(Light light)
|
|
|
{
|