Class VulkanGLFWRenderModuleEntrypoint
- All Implemented Interfaces:
ModuleInitializer
main entrypoint.
The most dependent module in the tree: it needs the render, GLFW render, Vulkan, and Vulkan render modules all present before it can do anything, and it blocks during initialization until every one of them has been handed to it. Once they have, it registers a scene callback generator, so each scene gets a renderer.
-
Constructor Summary
ConstructorsConstructorDescriptionCreates the Vulkan GLFW 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 GLFW render module's entrypoint.Returns the logger this module writes its diagnostics to.Returns the render module's entrypoint.Returns the Vulkan module's entrypoint.Returns the Vulkan render module's entrypoint.voidBrings this module up.protected voidBlocks until all four dependencies have been handed to this module.
-
Constructor Details
-
VulkanGLFWRenderModuleEntrypoint
public VulkanGLFWRenderModuleEntrypoint()Creates the Vulkan GLFW 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 all four dependencies have been handed to this module.Takes exactly four elements and sorts them by type, since the modules initialise concurrently and may arrive in any order. The count must match the number of dependencies declared in
quilt.mod.json: taking too few strands a producer, and taking too many blocks here forever.- 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
-
getGlfwRenderModuleEntrypoint
Returns the GLFW render module's entrypoint.- Returns:
- the GLFW render entrypoint, or
nullbefore the handshake completes
-
getRenderModuleEntrypoint
Returns the render module's entrypoint.- Returns:
- the render entrypoint, or
nullbefore the handshake completes
-
getVulkanModuleEntrypoint
Returns the Vulkan module's entrypoint.- Returns:
- the Vulkan entrypoint, or
nullbefore the handshake completes
-
getVulkanRenderModuleEntrypoint
Returns the Vulkan render module's entrypoint.- Returns:
- the Vulkan render entrypoint, or
nullbefore the handshake completes
-