# HG changeset patch # User Mike Becker # Date 1751664941 -7200 # Node ID d581ba87fe2a9f4a08eaf81552b8d86074011dde # Parent 954512fc391f381d968a1357a5c32a20f21b1f91 create utility to generate names - resolves #694 diff -r 954512fc391f -r d581ba87fe2a src/Makefile --- 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 \ diff -r 954512fc391f -r d581ba87fe2a src/ascension/util.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 + +cxmutstr asc_util_gen_name(void *obj, const char *type); + +#endif //ASC_UTIL_H diff -r 954512fc391f -r d581ba87fe2a src/util.c --- /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 +#include +#include + +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); +}