4 Commits
Author SHA1 Message Date
klemek a440535953 forge (steel) v1.2.4
Clang Build CI / build-release (push) Successful in 1m16s
Clang Build CI / run-no-video (push) Successful in 58s
Clang Build CI / run-video (push) Successful in 1m1s
Clang Lint CI / lint-no-video (push) Successful in 53s
Clang Lint CI / lint-video (push) Successful in 53s
2026-08-27 16:38:49 +02:00
klemek cec3d54685 fix(shaders): remove unused warning
Clang Lint CI / lint-no-video (push) Successful in 46s
Clang Build CI / run-video (push) Successful in 51s
Clang Build CI / run-no-video (push) Successful in 1m2s
Clang Build CI / build-release (push) Successful in 1m15s
Clang Lint CI / lint-video (push) Successful in 53s
2026-08-27 16:34:51 +02:00
klemek 7355d0937c fix(window): sometimes no GLFW_PLATFORM
Clang Lint CI / lint-no-video (push) Successful in 50s
Clang Build CI / run-no-video (push) Successful in 55s
Clang Build CI / run-video (push) Successful in 1m3s
Clang Build CI / build-release (push) Successful in 1m26s
Clang Lint CI / lint-video (push) Successful in 53s
2026-08-27 16:33:00 +02:00
klemek 1c44239a8d feat(window): can specify opengl version from args
Clang Build CI / run-no-video (push) Failing after 48s
Clang Lint CI / lint-no-video (push) Failing after 48s
Clang Build CI / run-video (push) Failing after 50s
Clang Build CI / build-release (push) Failing after 1m12s
Clang Lint CI / lint-video (push) Failing after 51s
2026-08-27 16:29:06 +02:00
11 changed files with 66 additions and 24 deletions
-1
View File
@@ -39,7 +39,6 @@ build-no-video:
-lm -lGL -lglfw -lasound \
-Wall -Wextra \
-Wno-format-truncation \
-Wno-unused-parameter \
-DGLFW_INCLUDE_NONE \
-DGLFW_NATIVE_INCLUDE_NONE \
-DLOG_USE_COLOR \
+2 -2
View File
@@ -1,12 +1,12 @@
pkgname=forge-steel
pkgver=1.2.3
pkgver=1.2.4
pkgrel=1
pkgdesc="Fusion Of Real Time Generative Effects"
arch=('i686' 'pentium4' 'x86_64' 'arm' 'armv7h' 'armv6h' 'aarch64' 'riscv64')
depends=('glfw>=1:3', 'v4l-utils>=1.32', 'alsa-lib>=1.2', 'libglvnd>=1.7')
url="https://git.klemek.fr/klemek/forge-steel"
source=("${pkgname}-steel-${pkgver}.tar.gz::https://git.klemek.fr/klemek/forge-steel/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz")
sha256sums=('7c6b29d2f8a66b040f218e7ec6604a1c892726cbc54867f4083596d00f628388')
sha256sums=('a34c7f8101d8d947e26bee1fa5ab8d87f4292014e5ef17d03eb34fefb387db9e')
srcdir=build
backup=("usr/share/${pkgname}")
+1 -1
View File
@@ -1,4 +1,4 @@
AC_INIT([forge], [steel-1.2.3], [klemek.dev@proton.me])
AC_INIT([forge], [steel-1.2.4], [klemek.dev@proton.me])
AM_INIT_AUTOMAKE
AC_PROG_CC
+24 -3
View File
@@ -7,12 +7,13 @@
#include "types.h"
#include "constants.h"
#include "args.h"
#include "config.h"
#include "string.h"
#define STR_IMPL_(x) #x // stringify argument
#define STR(x) STR_IMPL_(x) // indirection to expand argument macros
static void print_help(int status_code) {
puts(
PACKAGE
@@ -48,6 +49,8 @@ static void print_help(int status_code) {
"[--wayland] "
"[--cocoa] "
"[--win32] "
"[-oma=MAJOR] "
"[-omi=MINOR] "
"\n\n"
"Fusion Of Real-time Generative Effects.\n\n"
"options:\n"
@@ -91,7 +94,13 @@ static void print_help(int status_code) {
" --x11 force X11 GLFW backend\n"
" --wayland force Wayland GLFW backend\n"
" --cocoa force Cocoa GLFW backend\n"
" --win32 force Win32 GLFW backend\n");
" --win32 force Win32 GLFW backend\n"
" -oma, --opengl-major-version OpenGL major version "
"(default: " STR(
OPENGL_MAJOR_VERSION) ")\n"
" -omi, --opengl-minor-version OpenGL "
"minor version (default: " STR(
OPENGL_MINOR_VERSION) ")\n");
exit(status_code);
}
@@ -163,6 +172,8 @@ void args_parse(Parameters *params, int argc, char **argv) {
params->trace_midi = false;
params->trace_fps = false;
params->glfw_backend = GLFW_BACKEND_ANY;
params->opengl_major = OPENGL_MAJOR_VERSION;
params->opengl_minor = OPENGL_MINOR_VERSION;
for (int i = 1; i < argc; i++) {
arg = argv[i];
@@ -239,6 +250,16 @@ void args_parse(Parameters *params, int argc, char **argv) {
params->glfw_backend = GLFW_BACKEND_COCOA;
} else if (is_arg(arg, "--win32")) {
params->glfw_backend = GLFW_BACKEND_WIN32;
} else if (is_arg(arg, "-oma") || is_arg(arg, "--opengl-major-version")) {
params->opengl_major = parse_uint(arg, value);
if (params->opengl_major == 0) {
invalid_value(arg, value);
}
} else if (is_arg(arg, "-omi") || is_arg(arg, "--opengl-minor-version")) {
params->opengl_minor = parse_uint(arg, value);
if (params->opengl_major == 0) {
invalid_value(arg, value);
}
} else {
#ifdef VIDEO_IN
if (is_arg(arg, "-vi") || is_arg(arg, "--video-in")) {
+19
View File
@@ -87,4 +87,23 @@
#define MAX_TAP_VALUES 10
#endif
/* OPENGL */
#ifndef OPENGL_MAJOR_VERSION
#define OPENGL_MAJOR_VERSION 4
#endif
#ifndef OPENGL_MINOR_VERSION
#define OPENGL_MINOR_VERSION 6
#endif
/* GLFW CONSTANTS */
#ifndef GLFW_BACKENDS
#define GLFW_BACKEND_ANY 0
#define GLFW_BACKEND_X11 1
#define GLFW_BACKEND_WAYLAND 2
#define GLFW_BACKEND_COCOA 3
#define GLFW_BACKEND_WIN32 4
#endif
#endif /* CONFIG_H */
-6
View File
@@ -3,12 +3,6 @@
#ifndef CONSTANTS_H
#define CONSTANTS_H
static const unsigned int GLFW_BACKEND_ANY = 0;
static const unsigned int GLFW_BACKEND_X11 = 1;
static const unsigned int GLFW_BACKEND_WAYLAND = 2;
static const unsigned int GLFW_BACKEND_COCOA = 3;
static const unsigned int GLFW_BACKEND_WIN32 = 4;
static const char *vertex_shader_text =
"#version 460\n"
"const mat4 mvp = "
+4 -2
View File
@@ -293,7 +293,8 @@ static bool init(const Parameters *params) {
if (params->output) {
window_output = window_init(PACKAGE " " VERSION, params->output_screen,
params->windowed, NULL, key_callback);
params->windowed, params->opengl_major,
params->opengl_minor, NULL, key_callback);
window_use(window_output, &context);
@@ -305,7 +306,8 @@ static bool init(const Parameters *params) {
if (params->monitor) {
window_monitor =
window_init(PACKAGE " " VERSION " (monitor)", params->monitor_screen,
params->windowed, window_output, key_callback);
params->windowed, params->opengl_major,
params->opengl_minor, window_output, key_callback);
window_use(window_monitor, &context);
+1 -1
View File
@@ -60,7 +60,7 @@ static void gl_debug_callback(GLenum source, GLenum type, GLuint id,
#endif /* GL_DEBUG */
static bool check_eglerror_ro(const char *context) {
static bool check_eglerror_ro(__attribute__((unused)) const char *context) {
#ifdef VIDEO_IN
unsigned int code;
+2
View File
@@ -59,6 +59,8 @@ typedef struct Parameters {
bool trace_midi;
bool trace_fps;
unsigned int glfw_backend;
unsigned int opengl_major;
unsigned int opengl_minor;
} Parameters;
// file.c
+11 -7
View File
@@ -5,8 +5,6 @@
#include "types.h"
#include "constants.h"
#include "window.h"
static void init_glfw(void (*error_callback)(int, const char *),
@@ -20,6 +18,7 @@ static void init_glfw(void (*error_callback)(int, const char *),
log_info("[GLFW] %s", glfwGetVersionString());
switch (backend) {
#ifdef GLFW_PLATFORM
case GLFW_BACKEND_X11:
glfwInitHint(GLFW_PLATFORM, GLFW_PLATFORM_X11);
log_info("[GLFW] platform: X11");
@@ -36,6 +35,7 @@ static void init_glfw(void (*error_callback)(int, const char *),
glfwInitHint(GLFW_PLATFORM, GLFW_BACKEND_WIN32);
log_info("[GLFW] platform: Win32");
break;
#endif /* GLFW_PLATFORM */
default:
log_info("[GLFW] platform: Any");
break;
@@ -69,7 +69,9 @@ static GLFWmonitor *get_monitor(unsigned char monitor_index) {
}
static GLFWwindow *
create_window(GLFWmonitor *monitor, const char *title, Window *shared_context,
create_window(GLFWmonitor *monitor, const char *title,
const unsigned int opengl_major, const unsigned int opengl_minor,
Window *shared_context,
void (*key_callback)(Window *, int, int, int, int)) {
GLFWwindow *window;
@@ -82,8 +84,8 @@ create_window(GLFWmonitor *monitor, const char *title, Window *shared_context,
glfwWindowHint(GLFW_FOCUS_ON_SHOW, GLFW_FALSE);
// Context related hints
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 6);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, opengl_major);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, opengl_minor);
#ifdef GL_DEBUG
glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GLFW_TRUE);
#endif
@@ -122,14 +124,16 @@ void window_terminate() {
}
Window *window_init(const char *title, unsigned char monitor_index,
bool windowed, Window *shared_context,
bool windowed, const unsigned int opengl_major,
const unsigned int opengl_minor, Window *shared_context,
void (*key_callback)(Window *, int, int, int, int)) {
GLFWwindow *window;
GLFWmonitor *monitor;
monitor = windowed ? NULL : get_monitor(monitor_index);
window = create_window(monitor, title, shared_context, key_callback);
window = create_window(monitor, title, opengl_major, opengl_minor,
shared_context, key_callback);
use_window(window);
+2 -1
View File
@@ -8,7 +8,8 @@ void window_startup(void (*error_callback)(int, const char *), const unsigned in
void window_terminate();
Window *window_init(const char *title, unsigned char monitor_index,
bool windowed, Window *shared_context,
bool windowed, const unsigned int opengl_major,
const unsigned int opengl_minor, Window *shared_context,
void (*key_callback)(Window *, int, int, int, int));
void window_update_title(Window *window, const char *title);