Compare commits

...

9 commits

Author SHA1 Message Date
5766072fd7
Make Tristate#toBoolean no longer static
All checks were successful
build-and-test / test (push) Successful in 1m25s
build-and-test / build (push) Successful in 1m42s
build-and-test / generate-javadoc (push) Successful in 1m41s
2024-09-07 16:52:17 +02:00
b49ff9a569
Fix crash reporter exception (yes really) 2024-09-07 16:51:55 +02:00
f342555b8a
Update API documentation 2024-09-07 16:51:37 +02:00
9be753b4df
[no ci] Update module-info.java comments 2024-09-07 16:51:10 +02:00
f96584ccd9
'final'lize slf4j-compat classes
All checks were successful
build-and-test / test (push) Successful in 1m24s
build-and-test / build (push) Successful in 1m38s
build-and-test / generate-javadoc (push) Successful in 1m42s
2024-09-06 21:00:22 +02:00
a870cbe11b
Fix copyright replace regex
All checks were successful
build-and-test / test (push) Successful in 1m55s
build-and-test / build (push) Successful in 2m10s
build-and-test / generate-javadoc (push) Successful in 2m11s
2024-09-06 01:28:34 +02:00
dffd24d8bb
Add Javadoc files for testing subproject
All checks were successful
build-and-test / test (push) Successful in 1m47s
build-and-test / build (push) Successful in 1m54s
build-and-test / generate-javadoc (push) Successful in 1m56s
2024-09-05 02:03:59 +02:00
e9e57a732a
Add API documentation links for v1-alpha4
All checks were successful
build-and-test / build (push) Successful in 2m11s
build-and-test / test (push) Successful in 2m7s
build-and-test / generate-javadoc (push) Successful in 2m10s
2024-09-05 02:01:13 +02:00
6696dc5700
Bump to v1-alpha5
All checks were successful
build-and-test / test (push) Successful in 1m39s
build-and-test / build (push) Successful in 1m55s
build-and-test / generate-javadoc (push) Successful in 2m3s
2024-09-05 01:58:21 +02:00
24 changed files with 77 additions and 34 deletions

View file

@ -1,7 +1,7 @@
<component name="CopyrightManager"> <component name="CopyrightManager">
<copyright> <copyright>
<option name="allowReplaceRegexp" value="Copyright .* The StarOpenSource Engine Contributors" /> <option name="allowReplaceRegexp" value="Copyright .* The StarOpenSource Engine Authors" />
<option name="notice" value="STAROPENSOURCE ENGINE SOURCE FILE&#10;Copyright (c) &amp;#36;today.year The StarOpenSource Engine Authors&#10;Licensed under the GNU Affero General Public License v3&#10;&#10;This program is free software: you can redistribute it and/or modify&#10;it under the terms of the GNU Affero General Public License as&#10;published by the Free Software Foundation, either version 3 of the&#10;License, or (at your option) any later version.&#10;&#10;This program is distributed in the hope that it will be useful,&#10;but WITHOUT ANY WARRANTY; without even the implied warranty of&#10;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&#10;GNU Affero General Public License for more details.&#10;&#10;You should have received a copy of the GNU Affero General Public License&#10;along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;." /> <option name="notice" value="STAROPENSOURCE ENGINE SOURCE FILE&#10;Copyright (c) &amp;#36;today.year The StarOpenSource Engine Authors&#10;Licensed under the GNU Affero General Public License v3&#10;&#10;This program is free software: you can redistribute it and/or modify&#10;it under the terms of the GNU Affero General Public License as&#10;published by the Free Software Foundation, either version 3 of the&#10;License, or (at your option) any later version.&#10;&#10;This program is distributed in the hope that it will be useful,&#10;but WITHOUT ANY WARRANTY; without even the implied warranty of&#10;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&#10;GNU Affero General Public License for more details.&#10;&#10;You should have received a copy of the GNU Affero General Public License&#10;along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;." />
<option name="myName" value="sos!engine" /> <option name="myName" value="sos!engine" />
</copyright> </copyright>
</component> </component>

View file

@ -6,17 +6,13 @@
*/ */
module sosengine.ansi { module sosengine.ansi {
// Dependencies // Dependencies
// -> Java <- // -> Java
requires transitive java.management; requires transitive java.management;
// -> Engine
// -> Engine <-
requires transitive sosengine.base; requires transitive sosengine.base;
// -> Libraries
// -> Common stuff <-
requires transitive static lombok; requires transitive static lombok;
requires transitive org.jetbrains.annotations; requires transitive org.jetbrains.annotations;
// -> Subystem-specific dependencies <-
requires org.fusesource.jansi; requires org.fusesource.jansi;
// API access // API access

View file

@ -56,7 +56,7 @@ public final class StacktraceAll implements Placeholder {
.append(" priority=") .append(" priority=")
.append(thread.getPriority()) .append(thread.getPriority())
.append(" group=") .append(" group=")
.append(thread.getThreadGroup().getName()) .append(thread.getThreadGroup() == null ? "<unknown>" : thread.getThreadGroup().getName())
.append(" state=") .append(" state=")
.append(thread.getState().name()) .append(thread.getState().name())
.append(" daemon=") .append(" daemon=")

View file

@ -238,8 +238,8 @@ public final class LoggerInstance {
/** /**
* Builds a new {@link LoggerInstance} instance. * Builds a new {@link LoggerInstance} instance.
* *
* @return new {@link LoggerInstance} * @return new {@link LoggerInstance} instance
* @throws IllegalStateException if the class or origin is unset * @throws IllegalStateException if {@link #clazz} is unset
* @since v1-alpha2 * @since v1-alpha2
*/ */
public LoggerInstance build() throws IllegalStateException { public LoggerInstance build() throws IllegalStateException {
@ -294,6 +294,7 @@ public final class LoggerInstance {
* *
* @param clazz new class of the issuer * @param clazz new class of the issuer
* @return builder instance * @return builder instance
* @see LoggerInstance#clazz
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setClazz(@Nullable Class<?> clazz) { public @NotNull Builder setClazz(@Nullable Class<?> clazz) {
@ -306,6 +307,7 @@ public final class LoggerInstance {
* *
* @param origin new origin of the issuer * @param origin new origin of the issuer
* @return builder instance * @return builder instance
* @see LoggerInstance#origin
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setOrigin(@Nullable String origin) { public @NotNull Builder setOrigin(@Nullable String origin) {
@ -318,6 +320,7 @@ public final class LoggerInstance {
* *
* @param metadata new metadata about the issuer * @param metadata new metadata about the issuer
* @return builder instance * @return builder instance
* @see LoggerInstance#metadata
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setMetadata(@Nullable String metadata) { public @NotNull Builder setMetadata(@Nullable String metadata) {

View file

@ -173,8 +173,8 @@ public class DependencyVector {
/** /**
* Builds a new {@link DependencyVector} instance. * Builds a new {@link DependencyVector} instance.
* *
* @return new {@link DependencyVector} * @return new {@link DependencyVector} instance
* @throws IllegalStateException when the identifier, versioning system or version is unset or the version string is invalid * @throws IllegalStateException if {@link #identifier}, {@link #versioningSystem} or {@link #version} is unset or the version string is invalid
* @since v1-alpha4 * @since v1-alpha4
*/ */
public @NotNull DependencyVector build() throws IllegalStateException { public @NotNull DependencyVector build() throws IllegalStateException {

View file

@ -20,7 +20,6 @@
package de.staropensource.sosengine.base.type; package de.staropensource.sosengine.base.type;
import de.staropensource.sosengine.base.exception.TristateConversionException; import de.staropensource.sosengine.base.exception.TristateConversionException;
import org.jetbrains.annotations.NotNull;
/** /**
* Just a {@link Boolean}, but it can be {@link #UNSET}. * Just a {@link Boolean}, but it can be {@link #UNSET}.
@ -50,16 +49,15 @@ public enum Tristate {
FALSE; FALSE;
/** /**
* Converts a {@link Tristate} into a {@link Boolean}. * Converts the {@link Tristate} into a {@link Boolean}.
* Make sure to check for {@link #UNSET} first. * Make sure to check for {@link #UNSET} first.
* *
* @param tristate {@link Tristate} to convert
* @return booleanized {@link Tristate} * @return booleanized {@link Tristate}
* @throws TristateConversionException when encountering {@link #UNSET} * @throws TristateConversionException when encountering {@link #UNSET}
* @since v1-alpha2 * @since v1-alpha2
*/ */
public static boolean toBoolean(@NotNull Tristate tristate) { public boolean toBoolean() {
return switch (tristate) { return switch (this) {
case UNSET -> throw new TristateConversionException(); case UNSET -> throw new TristateConversionException();
case TRUE -> true; case TRUE -> true;
case FALSE -> false; case FALSE -> false;

View file

@ -80,7 +80,7 @@ public final class Miscellaneous {
* @since v1-alpha2 * @since v1-alpha2
*/ */
public static boolean getBooleanizedInteger(@Range(from = 0, to = 1) int integer) throws TristateConversionException { public static boolean getBooleanizedInteger(@Range(from = 0, to = 1) int integer) throws TristateConversionException {
return Tristate.toBoolean(getTristatedInteger(integer)); return getTristatedInteger(integer).toBoolean();
} }
/** /**

View file

@ -5,7 +5,9 @@
*/ */
module sosengine.base { module sosengine.base {
// Dependencies // Dependencies
// -> Java
requires transitive java.management; requires transitive java.management;
// -> Dependencies
requires transitive static lombok; requires transitive static lombok;
requires transitive org.jetbrains.annotations; requires transitive org.jetbrains.annotations;
requires org.reflections; requires org.reflections;

View file

@ -41,3 +41,11 @@ The engine API documentation covers the core engine and all official subsystems.
- [graphics:glfw](https://jd.engine.staropensource.de/v1-alpha3/graphics:glfw/) - [graphics:glfw](https://jd.engine.staropensource.de/v1-alpha3/graphics:glfw/)
- [graphics:opengl](https://jd.engine.staropensource.de/v1-alpha3/graphics:opengl/) - [graphics:opengl](https://jd.engine.staropensource.de/v1-alpha3/graphics:opengl/)
- [graphics:vulkan](https://jd.engine.staropensource.de/v1-alpha3/graphics:vulkan/) - [graphics:vulkan](https://jd.engine.staropensource.de/v1-alpha3/graphics:vulkan/)
- v1-alpha4
- [All subsystem](https://jd.engine.staropensource.de/v1-alpha4/all/)
- [base](https://jd.engine.staropensource.de/v1-alpha4/base/)
- [testing](https://jd.engine.staropensource.de/v1-alpha4/testing/)
- [ansi](https://jd.engine.staropensource.de/v1-alpha4/ansi/)
- [slf4j-compat](https://jd.engine.staropensource.de/v1-alpha4/slf4j-compat/)
- [windowing](https://jd.engine.staropensource.de/v1-alpha4/windowing/)
- [windowing:glfw](https://jd.engine.staropensource.de/v1-alpha4/windowing:glfw/)

View file

@ -21,7 +21,7 @@
versioningCodename=Sugarcookie versioningCodename=Sugarcookie
versioningVersion=1 versioningVersion=1
versioningType=alpha versioningType=alpha
versioningTyperelease=4 versioningTyperelease=5
versioningFork= versioningFork=
# Java # Java

View file

@ -34,7 +34,7 @@ import org.slf4j.helpers.MessageFormatter;
* *
* @since v1-alpha0 * @since v1-alpha0
*/ */
public class CompatibilityLogger extends LegacyAbstractLogger { public final class CompatibilityLogger extends LegacyAbstractLogger {
/** /**
* Logger instance, used to print all log messages coming from SLF4J. * Logger instance, used to print all log messages coming from SLF4J.
* *

View file

@ -31,7 +31,7 @@ import java.util.concurrent.ConcurrentMap;
* *
* @since v1-alpha0 * @since v1-alpha0
*/ */
public class CompatibilityLoggerFactory implements ILoggerFactory { public final class CompatibilityLoggerFactory implements ILoggerFactory {
ConcurrentMap<@NotNull String, @NotNull Logger> loggerMap; ConcurrentMap<@NotNull String, @NotNull Logger> loggerMap;
/** /**

View file

@ -35,7 +35,7 @@ import org.slf4j.spi.SLF4JServiceProvider;
* @since v1-alpha0 * @since v1-alpha0
*/ */
@Getter @Getter
public class CompatibilityLoggerProvider implements SLF4JServiceProvider { public final class CompatibilityLoggerProvider implements SLF4JServiceProvider {
/** /**
* Contains a {@link CompatibilityLoggerFactory}. * Contains a {@link CompatibilityLoggerFactory}.
* *

View file

@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory;
*/ */
@EngineSubsystem @EngineSubsystem
@SuppressWarnings({ "JavadocDeclaration" }) @SuppressWarnings({ "JavadocDeclaration" })
public class Slf4jCompatSubsystem extends SubsystemClass { public final class Slf4jCompatSubsystem extends SubsystemClass {
/** /**
* Contains the class instance. * Contains the class instance.
* *

View file

@ -21,5 +21,6 @@
* Code of the SLF4J Compatibility subsystem. * Code of the SLF4J Compatibility subsystem.
* *
* @see de.staropensource.sosengine.slf4j_compat.Slf4jCompatSubsystem#Slf4jCompatSubsystem() * @see de.staropensource.sosengine.slf4j_compat.Slf4jCompatSubsystem#Slf4jCompatSubsystem()
* @since v1-alpha0
*/ */
package de.staropensource.sosengine.slf4j_compat; package de.staropensource.sosengine.slf4j_compat;

View file

@ -6,7 +6,7 @@
*/ */
module sosengine.slf4j_compat { module sosengine.slf4j_compat {
// Dependencies // Dependencies
// -> Subsystems // -> Engine
requires transitive sosengine.base; requires transitive sosengine.base;
// -> Libraries // -> Libraries
requires transitive static lombok; requires transitive static lombok;

View file

@ -6,10 +6,8 @@
*/ */
open module sosengine.testapp { open module sosengine.testapp {
// Dependencies // Dependencies
// -> Subsystems // -> Engine
requires sosengine.base;
requires sosengine.windowing; requires sosengine.windowing;
requires sosengine.slf4j_compat; requires sosengine.slf4j_compat;
// -> Libraries // -> Libraries
requires static lombok;
} }

View file

@ -5,7 +5,7 @@
*/ */
module sosengine.testing { module sosengine.testing {
// Dependencies // Dependencies
// -> Subsystems // -> Engine
requires transitive sosengine.base; requires transitive sosengine.base;
// -> Libraries // -> Libraries
requires transitive static lombok; requires transitive static lombok;

View file

@ -0,0 +1,22 @@
<!--
~ STAROPENSOURCE ENGINE SOURCE FILE
~ Copyright (c) 2024 The StarOpenSource Engine Contributors
~ Licensed under the GNU Affero General Public License v3
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as
~ published by the Free Software Foundation, either version 3 of the
~ License, or (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<body>
<p>Welcome to the sos!engine API documentation!<br/>
You are currently in the documentation for the <b>testing</b> subproject, which provides classes useful for testing the engine.</p>
</body>

View file

@ -0,0 +1 @@
../../../../src/main/javadoc/theme.css

View file

@ -328,7 +328,7 @@ public class GlfwWindow extends Window {
if (isTerminated()) if (isTerminated())
return false; return false;
return Tristate.toBoolean(Miscellaneous.getTristatedInteger(glfwGetWindowAttrib(identifierLong, GLFW_FOCUSED))); return Miscellaneous.getTristatedInteger(glfwGetWindowAttrib(identifierLong, GLFW_FOCUSED)).toBoolean();
} }
/** {@inheritDoc} */ /** {@inheritDoc} */

View file

@ -8,7 +8,7 @@ import de.staropensource.sosengine.windowing.implementable.Window;
*/ */
module sosengine.windowing.glfw { module sosengine.windowing.glfw {
// Dependencies // Dependencies
// -> Subsystems // -> Engine
requires transitive sosengine.base; requires transitive sosengine.base;
requires transitive sosengine.windowing; requires transitive sosengine.windowing;
// -> Libraries // -> Libraries

View file

@ -736,7 +736,7 @@ public abstract class Window implements AutoCloseable {
/** /**
* Builds a new {@link Window} instance. * Builds a new {@link Window} instance.
* *
* @throws IllegalStateException if the window title, size or position is unset * @throws IllegalStateException if {@link #title}, {@link #size} or {@link #position} is unset
* @throws Exception thrown when creating a new {@link Window} instance fails * @throws Exception thrown when creating a new {@link Window} instance fails
* @return {@link Window} instance * @return {@link Window} instance
* @since v1-alpha2 * @since v1-alpha2
@ -949,6 +949,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param name new window name * @param name new window name
* @return builder instance * @return builder instance
* @see Window#name
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setName(@Nullable String name) { public @NotNull Builder setName(@Nullable String name) {
@ -961,6 +962,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param title new window title * @param title new window title
* @return builder instance * @return builder instance
* @see Window#title
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setTitle(@Nullable String title) { public @NotNull Builder setTitle(@Nullable String title) {
@ -973,6 +975,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param size new window size * @param size new window size
* @return builder instance * @return builder instance
* @see Window#size
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setSize(@Nullable Vec2i size) { public @NotNull Builder setSize(@Nullable Vec2i size) {
@ -985,6 +988,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param minimumSize new minimum window size * @param minimumSize new minimum window size
* @return builder instance * @return builder instance
* @see Window#minimumSize
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setMinimumSize(@Nullable Vec2i minimumSize) { public @NotNull Builder setMinimumSize(@Nullable Vec2i minimumSize) {
@ -997,6 +1001,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param maximumSize new maximum window size * @param maximumSize new maximum window size
* @return builder instance * @return builder instance
* @see Window#maximumSize
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setMaximumSize(@Nullable Vec2i maximumSize) { public @NotNull Builder setMaximumSize(@Nullable Vec2i maximumSize) {
@ -1009,6 +1014,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param position new window position * @param position new window position
* @return builder instance * @return builder instance
* @see Window#position
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setPosition(@Nullable Vec2i position) { public @NotNull Builder setPosition(@Nullable Vec2i position) {
@ -1021,6 +1027,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param windowMode new window mode * @param windowMode new window mode
* @return builder instance * @return builder instance
* @see Window#windowMode
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setWindowMode(@Nullable WindowMode windowMode) { public @NotNull Builder setWindowMode(@Nullable WindowMode windowMode) {
@ -1033,6 +1040,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param monitor new target monitor * @param monitor new target monitor
* @return builder instance * @return builder instance
* @see Window#monitor
* @since v1-alpha2 * @since v1-alpha2
*/ */
private synchronized @NotNull Builder setMonitor(@Nullable Monitor monitor) { private synchronized @NotNull Builder setMonitor(@Nullable Monitor monitor) {
@ -1045,6 +1053,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param resizable new resizable flag state * @param resizable new resizable flag state
* @return builder instance * @return builder instance
* @see Window#resizable
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setResizable(@NotNull Tristate resizable) { public @NotNull Builder setResizable(@NotNull Tristate resizable) {
@ -1057,6 +1066,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param borderless new borderless flag state * @param borderless new borderless flag state
* @return builder instance * @return builder instance
* @see Window#borderless
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setBorderless(@NotNull Tristate borderless) { public @NotNull Builder setBorderless(@NotNull Tristate borderless) {
@ -1069,6 +1079,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param focusable new focusable flag state * @param focusable new focusable flag state
* @return builder instance * @return builder instance
* @see Window#focusable
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setFocusable(@NotNull Tristate focusable) { public @NotNull Builder setFocusable(@NotNull Tristate focusable) {
@ -1081,6 +1092,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param onTop new on top flag state * @param onTop new on top flag state
* @return builder instance * @return builder instance
* @see Window#onTop
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setOnTop(@NotNull Tristate onTop) { public @NotNull Builder setOnTop(@NotNull Tristate onTop) {
@ -1093,6 +1105,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param transparent new transparency flag state * @param transparent new transparency flag state
* @return builder instance * @return builder instance
* @see Window#transparent
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setTransparent(@NotNull Tristate transparent) { public @NotNull Builder setTransparent(@NotNull Tristate transparent) {
@ -1105,6 +1118,7 @@ public abstract class Window implements AutoCloseable {
* *
* @param rendering new rendering flag state * @param rendering new rendering flag state
* @return builder instance * @return builder instance
* @see Window#rendering
* @since v1-alpha2 * @since v1-alpha2
*/ */
public @NotNull Builder setRendering(@NotNull Tristate rendering) { public @NotNull Builder setRendering(@NotNull Tristate rendering) {

View file

@ -6,7 +6,7 @@
*/ */
module sosengine.windowing { module sosengine.windowing {
// Dependencies // Dependencies
// -> Subsystems // -> Engine
requires transitive sosengine.base; requires transitive sosengine.base;
// -> Libraries // -> Libraries
requires transitive static lombok; requires transitive static lombok;