create utility to generate names - resolves #694

Fri, 04 Jul 2025 23:35:41 +0200

author
Mike Becker <universe@uap-core.de>
date
Fri, 04 Jul 2025 23:35:41 +0200
changeset 178
d581ba87fe2a
parent 177
954512fc391f
child 179
9d0946907cd9

create utility to generate names - resolves #694

src/Makefile file | annotate | diff | comparison | revisions
src/ascension/util.h file | annotate | diff | comparison | revisions
src/util.c file | annotate | diff | comparison | revisions
--- a/src/Makefile	Fri Jul 04 23:23:29 2025 +0200
+++ b/src/Makefile	Fri Jul 04 23:35:41 2025 +0200
@@ -27,7 +27,7 @@
 
 BUILD_DIR=../build/lib
 
-SRC = context.c glcontext.c filesystem.c error.c \
+SRC = context.c glcontext.c filesystem.c error.c util.c \
       window.c shader.c mesh.c texture.c \
       sprite.c 2d.c \
       camera.c scene.c scene_node.c behavior.c \
@@ -123,11 +123,11 @@
 	@echo "Compiling $<"
 	$(CC) -o $@ $(CFLAGS) -c $<
 
-$(BUILD_DIR)/shader.o: shader.c ascension/context.h ascension/datatypes.h \
- ascension/window.h ascension/glcontext.h ascension/scene.h \
- ascension/scene_node.h ascension/transform.h ascension/camera.h \
- ascension/input.h ascension/ui/font.h ascension/error.h \
- ascension/shader.h ascension/filesystem.h
+$(BUILD_DIR)/shader.o: shader.c ascension/shader.h ascension/camera.h \
+ ascension/datatypes.h ascension/context.h ascension/window.h \
+ ascension/glcontext.h ascension/scene.h ascension/scene_node.h \
+ ascension/transform.h ascension/input.h ascension/ui/font.h \
+ ascension/error.h ascension/filesystem.h
 	@echo "Compiling $<"
 	$(CC) -o $@ $(CFLAGS) -c $<
 
@@ -171,6 +171,10 @@
 	@echo "Compiling $<"
 	$(CC) -o $@ $(CFLAGS) -c $<
 
+$(BUILD_DIR)/util.o: util.c ascension/util.h
+	@echo "Compiling $<"
+	$(CC) -o $@ $(CFLAGS) -c $<
+
 $(BUILD_DIR)/window.o: window.c ascension/error.h ascension/window.h \
  ascension/datatypes.h ascension/glcontext.h ascension/scene.h \
  ascension/scene_node.h ascension/transform.h ascension/camera.h \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ascension/util.h	Fri Jul 04 23:35:41 2025 +0200
@@ -0,0 +1,35 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ * Copyright 2025 Mike Becker. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef ASC_UTIL_H
+#define ASC_UTIL_H
+
+#include <cx/string.h>
+
+cxmutstr asc_util_gen_name(void *obj, const char *type);
+
+#endif //ASC_UTIL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/util.c	Fri Jul 04 23:35:41 2025 +0200
@@ -0,0 +1,38 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ * Copyright 2025 Mike Becker. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "ascension/util.h"
+
+#include <cx/printf.h>
+#include <inttypes.h>
+#include <assert.h>
+
+cxmutstr asc_util_gen_name(void *obj, const char *type) {
+    if (type == NULL) type = "object";
+    assert(obj != NULL);
+    return cx_asprintf("%s_%" PRIxPTR, type, (uintptr_t)obj);
+}

mercurial