Class VulkanRenderModuleEntrypoint
- All Implemented Interfaces:
ModuleInitializer
main entrypoint.
Joins the two halves of Vulkan rendering: the render module's window and input abstractions, and the Vulkan module's devices and queues. It depends on both, so it blocks during initialization until each has been handed to it, then hands itself to the windowing-specific module that actually draws.
-
Constructor Summary
ConstructorsConstructorDescriptionCreates the Vulkan render module's entrypoint. -
Method Summary
Modifier and TypeMethodDescriptionReturns this module's configuration.Returns the queue by which this module receives the entrypoints it depends on.Returns the logger this module writes its diagnostics to.voidBrings this module up.protected voidBlocks until both dependencies have been handed to this module.
-
Constructor Details
-
VulkanRenderModuleEntrypoint
public VulkanRenderModuleEntrypoint()Creates the Vulkan render module's entrypoint.Called by the loader; nothing happens until
onInitialize()runs.
-
-
Method Details
-
onInitialize
public void onInitialize()Description copied from interface:ModuleInitializerBrings this module up.An implementation sets its logger's level from the engine's configuration, loads its own configuration and saves it if loading substituted defaults, receives any dependencies it declares through
ModuleInitializer.getDependencyModuleTransferQueue(), performs any operations it must perform during initialization, and finally invokes its own dependent entrypoints, passing itself.- Specified by:
onInitializein interfaceModuleInitializer
-
recieveDependenciesFromTransferQueue
Blocks until both dependencies have been handed to this module.Takes exactly two elements and sorts them by type, since the Vulkan and render modules initialise concurrently and either may arrive first.
- Throws:
InterruptedException- if interrupted while waiting for a dependency
-
getConfig
Description copied from interface:ModuleInitializerReturns this module's configuration.- Specified by:
getConfigin interfaceModuleInitializer- Returns:
- the configuration, or
nullbeforeModuleInitializer.onInitialize()has loaded it
-
getLogger
Description copied from interface:ModuleInitializerReturns the logger this module writes its diagnostics to.The same instance is returned for the lifetime of this entrypoint.
- Specified by:
getLoggerin interfaceModuleInitializer- Returns:
- this module's logger
-
getDependencyModuleTransferQueue
Description copied from interface:ModuleInitializerReturns the queue by which this module receives the entrypoints it depends on.A module does not look its dependencies up. Each module it depends on invokes a dependent entrypoint, which transfers that module's own entrypoint into this queue. The same instance is returned for the lifetime of this entrypoint; a fresh or defensively copied queue breaks the handshake, because the producer transfers into whichever queue this method returned.
- Specified by:
getDependencyModuleTransferQueuein interfaceModuleInitializer- Returns:
- this module's dependency transfer queue
-