Commit graph

869 commits

Author SHA1 Message Date
Jozufozu
069679689f Shaders and ladders
- Compile with progressively lower glsl versions to test which are
  available.
- Properly returns 460 on my machine even with a gl version of 320
- Remove glsl enums below 150
2024-05-17 08:43:56 -07:00
Jozufozu
e40f50f4f7 Willing and able
- Refine capabilities checks
- To compile with glsl 150:
  - Instancing needs ARB_shader_bit_encoding
  - Indirect needs gpu_shader5 and shading_language_420pack
- Require extensions instead of just enable, probably doesn't make a
  difference since we check for their presence first but require aligns
  with our intent better
2024-05-17 08:43:56 -07:00
Jozufozu
15184b8ccd Declaration of jar
- Expose desired behaviors from platform plugin via an extension
- Move PlatformPlugin to platform package
2024-05-17 08:43:56 -07:00
Jozufozu
fb798112d7 Unplugging it and plugging it back in
- Convert existing binary plugins to kotlin
- Move each plugin to a different package
2024-05-17 08:43:56 -07:00
Jozufozu
2072bea11b Caught linking
- Upgrade buildSrc to kotlin buildscript
- Add TransitiveSourceSet extension to abstract creating the different
  source sets and creating the configurations to apply dependencies
2024-05-17 08:43:56 -07:00
PepperCode1
29b8c3b00f Fabric client commands 2024-05-17 08:43:56 -07:00
Jozufozu
745ccfae10 Plugin play
- Convert package infos stuff to a proper plugin
- Add extension for specifying which source sets get generated package
  infos
- Move extension classes into their own files
- Move GeneratePackageInfosTask into com.jozufozu.gradle
2024-05-17 08:43:56 -07:00
Jozufozu
1406d21d83 Publicity stunt
- Only publish api/lib and full jars for platforms
- Do not eagerly create outgoing configurations for JarTaskSet
- Add method to create outgoing configuration
- Clean up JarTaskSet creation and move some string constants to statics
- Set @CompileStatic
- Remove ${name} classifier prefix from JarTaskSet jars
- Put JarTaskSet jars into subdirectories in the output folders
- Add configure and configureEach methods to JarTaskSet
- Rename OutgoingConfigurationPlugin -> JarSetPlugin and move extension
  to root module so idea offers completions in gradle files
- Standardize artifact naming flywheel-$platform(-api)?-$mcversion
2024-05-17 08:43:56 -07:00
Kneelawk
e18eb769d2 Workflowestest
Since we're not running tests, there's no real use in running on windows. Switching to running CI exclusively on ubuntu-latest for the time-being.
2024-05-17 08:43:56 -07:00
Kneelawk
aa9740e71e Workflowester
I forgot windows doesn't provide java toolchains for lower versions. For now CI will only run on Java 17.
2024-05-17 08:43:56 -07:00
Kneelawk
e6d1b4702c Workflowest
Use windows-2022 for runner because the windows-2024 runners aren't running.
2024-05-17 08:43:56 -07:00
Kneelawk
d1f9de6638 Workflower
- Changed GitHub CI to run `publish` task so we can make sure that publishing actually works.
2024-05-17 08:43:56 -07:00
Kneelawk
79b65bd17b Workflowing 2024-05-17 08:43:56 -07:00
Kneelawk
90321be90d Fix RenderStageCallback 2024-05-17 08:43:56 -07:00
Kneelawk
bce5f3f9b8 Fix refmaps, again 2024-05-17 08:43:56 -07:00
Kneelawk
d88933984e Get Publishing! 2024-05-17 08:43:56 -07:00
Kneelawk
d5bdbeb106 Use central javadoc-options file 2024-05-17 08:43:56 -07:00
Kneelawk
f15501dac8 Add common publishing 2024-05-17 08:43:56 -07:00
PepperCode1
b9490fe11a Best-effort untested Fabric model builders
- Also fix crash buffering fluids in BakedModelBufferer#bufferMultiBlock (Forge)
- The mesh order in models created by model builders is currently incorrect and will be fixed later
2024-05-17 08:43:56 -07:00
Jozufozu
9ae4065c1c Pretty groovy man
- Upgrade platform script plugin to pre-compiled groovy plugin
- It was getting really difficult to manage all the logic/plugins/types
  from the basic script, and implementing a real plugin gives us much
  better type safety and IDE access to upstream plugins
- Separate api/lib/backend/impl in platform projects
- Add platform module output to main runtime classpath so the fabric
  loader recognizes our additional modules
2024-05-17 08:43:56 -07:00
Jozufozu
e1b0cebc2c Unconventional
- Use convention plugins for common build logic
- Convention plugins get to be applied in the plugins block and can load
  other plugins
- Move GeneratePackageInfosTask to its own file in buildSrc
- Apply GeneratePackageInfosTask to every sourceSet
2024-05-17 08:43:56 -07:00
Jozufozu
82a098626b Centrifuge
- Separate common project into 4 source sets
- Declare outgoing configurations for forge/fabric to depend on
- Re-compile source from each source set in each platform's compileJava
2024-05-17 08:43:56 -07:00
Kneelawk
cdaf6d2394 Fix forge remapping 2024-05-17 08:43:56 -07:00
Kneelawk
25772a03b0 Fix refmaps 2024-05-17 08:43:56 -07:00
Kneelawk
0a4d511042 Fix artifactIds 2024-05-17 08:43:56 -07:00
Kneelawk
ebb5b08873 Fix javadoc task 2024-05-17 08:43:56 -07:00
PepperCode1
0d53857f10 Remove old DependencyInjection#load method 2024-05-17 08:43:56 -07:00
PepperCode1
989728ca58 Most of Fabric
- Organize almost all remaining code into one of four modules
- Fix some incorrect inter-module dependencies
- Get Fabric into a working state
  - The config, client commands, and model builders are still missing and registry freezing happens too late
2024-05-17 08:43:56 -07:00
Jozufozu
36362170c7 Graidiomatic
- Move common build script stuff to buildSrc
- Set ideaSyncTask finalizedBy generatePackageInfos directly in
  package-infos.gradle
- Enable loom multiproject optimization, though not sure if it makes a
  difference for us yet
2024-05-17 08:43:56 -07:00
PepperCode1
3ccb4eb9a1 Minor clean up and fixes 2024-05-17 08:43:56 -07:00
Jozufozu
5b5559d682 One line optimization
- Actually init vanilla visuals
2024-05-17 08:43:56 -07:00
Jozufozu
8d4fe7722c Gradle grumbles
- Apply java, maven-publish to all projects
- Prefer the tasks.named() syntax for configuring tasks
- Separate shared configuration for platform projects into a separate
  configure block
- Add more fields to processResources
- Make helper methods static
- Exclude duplicated package infos
2024-05-17 08:43:56 -07:00
Jozufozu
57ac1b08f4 Compiling models
- Make model builders abstract
- Move BakedModelBufferer as is into forge project
- Create Forge*ModelBuilders with modeldata parameters
- Wrap ModelBuilder ctors in factory methods
- Add FlywheelLibPlatform api, similar to api.internal package but for
  lib-only/platform specific stuff
- Move TransformStack wrapping into FlywheelLibPlatform
- Create vanilla renderer through FlywheelLibPlatform
- Handle partial model initialization in separate event handler class
- Fix test configuration in common project
2024-05-17 08:43:56 -07:00
Jozufozu
ff0a928479 Everything but models
- Trying to get xplat forge working, fabric can wait until the common
  project compiles
- Move backend manager event handling to separate class
- Move commands into forge for now
- Make FlwConfig an interface and move concrete impl into forge
- Remove event parameters from handlers than don't actually use them
- Add platform specific blockstate light emission for uniforms
- Remove example effect
- Add accessor for LevelRenderer#ticks
2024-05-17 08:43:56 -07:00
Jozufozu
ec685ebdc0 Out for a run
- Move loom.runs into subprojects closure
- Move common code sharing into subprojects closure
- Apply java plugin
- Fix runs not being generated by moving generatePackageInfos to the
  bottom
2024-05-17 08:43:56 -07:00
Jozufozu
e152df6769 Platform dependent wheeling
- Use ClientPlatform to:
  - Dispatch events
  - Create iris/oculus handler
- Move VisualizationEventHandler into forge project
2024-05-17 08:43:56 -07:00
Jozufozu
7e5b2098b1 Deduplication and stubs
- Move common gradle business from each subproject into the
  rootProject.subprojects closure
- Add fabric.mod.json
- Register forge mixin configs
- Make blaze3d mixins remap = false
- Separate common, forge, and fabric mod entrypoints
2024-05-17 08:43:56 -07:00
Kneelawk
58278dd8b4 Move events to platforms 2024-05-17 08:43:56 -07:00
Kneelawk
6e0702aa0b Move MinecraftMixin to platforms 2024-05-17 08:43:56 -07:00
Kneelawk
70a72209d2 Move Sodium mixin to platform code 2024-05-17 08:43:56 -07:00
Kneelawk
f227c44ec8 Begin on platform abstraction interface 2024-05-17 08:43:56 -07:00
Kneelawk
dbd8106b4a Add jsr305 compile dependency 2024-05-17 08:43:56 -07:00
Kneelawk
85f68997e0 Re-add sodium/embeddium, iris/oculus, starlight dependencies 2024-05-17 08:43:56 -07:00
Kneelawk
7aed7c7ad1 Re-add package-info generation 2024-05-17 08:43:56 -07:00
Kneelawk
f728ca4a4e Begin architectury setup 2024-05-17 08:43:56 -07:00
Jozufozu
f51e2d2a1b Case'd into a corner
- Do not clear instance handles when clearing an instancer
  - Fixes case where a stolen handle gets cleared after changing
    instancers
- Use a concurrent queue for initializing instancers in DrawManager
  - Fixes race condition where only one of two instancers created in the
    same moment get initialized
2024-05-01 19:30:11 -07:00
Jozufozu
dbf1977c0d Like a deer in the headlights
- Freeze registries in FMLLoadCompleteEvent
- Pass registry objects into freeze callback consumers
  - Should make it more difficult to pass a callback to the wrong
    registry
2024-04-14 22:24:31 -07:00
PepperCode1
4cb2cabec8 Fix FogUniforms 2024-04-11 12:19:18 -07:00
PepperCode1
2365687950 Next level
- Rename all appropriate occurrences of "world" to "level"
- Simplify uniform buffers
- Fix indirect cull dispatch only binding frame uniforms
- Fix level renderer reload resetting debug mode
- Properly register backend argument
2024-04-11 12:12:13 -07:00
PepperCode1
2f7fce29c3 Arrays and alignment
- Allow array elements in layouts with lengths in range [1, 256]
- Align each layout element to its primitive size instead of always
aligning to 4 bytes; this is the same as C struct alignment
- Rename package lib.visual.components -> component
- Add more methods to layout API interfaces to allow retrieving
information such as padding size and alignment
2024-04-05 17:00:04 -07:00