Fix Graphics API shutdown logic

This commit is contained in:
JeremyStar™ 2024-07-21 21:19:27 +02:00
parent aaa81e2f87
commit e8b9642177
Signed by: JeremyStarTM
GPG key ID: E366BAEF67E4704D
2 changed files with 22 additions and 16 deletions

View file

@ -150,12 +150,19 @@ public final class OpenGlSubsystem implements ApiMainClass {
} }
/** /**
* Shuts the graphics subsystem down. * Called when the engine shuts down.
* *
* @since v1-alpha0 * @since v1-alpha2
*/ */
public static void shutdownApi() { @EventListener(event = InternalEngineShutdownEvent.class, priority = EventPriority.EXTREMELY_UNIMPORTANT)
LoggerInstance logger = instance.logger; private static void shutdownApiFromEvent() {
if (instance != null)
instance.shutdownApi();
}
/** {@inheritDoc} */
@Override
public void shutdownApi() {
logger.verb("Shutting down"); logger.verb("Shutting down");
@SuppressWarnings("resource") @SuppressWarnings("resource")

View file

@ -22,8 +22,6 @@ package de.staropensource.sosengine.graphics.classes;
import de.staropensource.sosengine.base.Engine; import de.staropensource.sosengine.base.Engine;
import de.staropensource.sosengine.base.annotations.EventListener; import de.staropensource.sosengine.base.annotations.EventListener;
import de.staropensource.sosengine.base.classes.SubsystemMainClass; import de.staropensource.sosengine.base.classes.SubsystemMainClass;
import de.staropensource.sosengine.base.internal.events.InternalEngineShutdownEvent;
import de.staropensource.sosengine.base.types.EventPriority;
import de.staropensource.sosengine.graphics.events.GraphicsErrorEvent; import de.staropensource.sosengine.graphics.events.GraphicsErrorEvent;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -41,6 +39,17 @@ public interface ApiMainClass extends SubsystemMainClass {
*/ */
void initializeApi(); void initializeApi();
/**
* Shuts the Graphics API down.
* <p>
* Called when the engine shuts down.
*
* @see Engine#shutdown()
* @see Engine#shutdown(int)
* @since v1-alpha0
*/
void shutdownApi();
/** /**
* Returns the name of the Graphics API. * Returns the name of the Graphics API.
* *
@ -85,14 +94,4 @@ public interface ApiMainClass extends SubsystemMainClass {
*/ */
@EventListener(event = GraphicsErrorEvent.class) @EventListener(event = GraphicsErrorEvent.class)
static void onGraphicsError(String error) {} static void onGraphicsError(String error) {}
/**
* Called when the engine shuts down.
*
* @see Engine#shutdown()
* @see Engine#shutdown(int)
* @since v1-alpha0
*/
@EventListener(event = InternalEngineShutdownEvent.class, priority = EventPriority.EXTREMELY_UNIMPORTANT)
static void shutdownApi() {}
} }