PainterEngine is a application/game engine with software renderer,PainterEngine can be transplanted to any platform that supports C

Overview

avatar

PainterEngine是一个由C语言编写的跨平台图形应用框架,可运行于Windows Linux Android iOS 支持WebAssembly的Web端及嵌入式MCU上

  • PainterEngine由C89标准及部分拓展编写,不依赖任何C标准库及三方库。
  • PainterEngine是平台、编译环境、运行时无关的。
  • 包含一套完整的内存管理及常用数据结构算法的实现。
  • 包含一套完整软2D/3D渲染器实现。
  • 包含一套完整编译型脚本引擎实现(编译器、虚拟机、调试器)。
  • 包含一套完整游戏世界框架(对象及资源管理器,事件调度器,碰撞优化及物理计算模板)。
  • 包含一套完整的Live2D动画系统实现(骨骼及物理模拟、动作追踪、独立的图元光栅化实现,配套建模编辑器)
  • 常用的反走样几何绘制及光栅化算法。
  • 图像信号及音频信号处理算法(常用滤波器、声码编码器、ZCR、MFCC等特征采集算法)。
  • 基础的BP神经网络框架实现。
  • UI框架、粒子系统、调音器、混音器、逐帧动画、网络同步协议、MODBUS,MQTT等iot协议栈、json/obj/wav Parser..的完整实现。
  • 更多内容及使用说明,请参阅教程及《PainterEngine API Manual》



更多内容请访问 PainterEngine.com
Issues
  • 在Dev-C++ 中 存在一个编译问题

    在Dev-C++ 中 存在一个编译问题

    30 35 C:\Dev C++\PainterEngineTest\PainterEngine\Core\PX_Packet.c [Error] invalid conversion from 'const void*' to 'px_void* {aka void*}' [-fpermissive]

    PX_Packet.c 第30行 35列 批注 2019-07-14 095158

    opened by cyder-zz 10
  • Visual Studio 2019编译不通过

    Visual Studio 2019编译不通过

    错误信息如下

    1>${WorkPath}\PainterEngine_test_1\PainterEngine\PainterEngineHelper.c(254,1): error C4996:  'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>正在生成代码...
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt\stdio.h(208): message :  参见“fopen”的声明
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt\stdio.h(208): message : ${WorkPath}\PainterEngine_test_1\PainterEngine\Kernel\PX_Sync.c(944) : error C4703: 使用了可能未初始化的本地指针变量“pClient”
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt\stdio.h(208): message : ${WorkPath}\PainterEngine_test_1\PainterEngine\Kernel\PX_Script_Interpreter.c(6055) : error C4703: 使用了可能未初始化的本地指针变量“pfunc”
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt\stdio.h(208): message : ${WorkPath}\PainterEngine_test_1\PainterEngine\Kernel\PX_Script_Interpreter.c(6419) : error C4703: 使用了可能未初始化的本地指针变量“plastop”
    1>已完成生成项目“PainterEngine_test_1.vcxproj”的操作 - 失败。
    

    另外是否考虑一下增加cpp兼容性?增加跨平台兼容性

    #ifdefined __cplusplus
    extern "C" {
    #endif
    
    /*
    code here
    */
    
    #ifdefined __cplusplus
    }
    #endif
    
    opened by yuxiaoyuan0406 6
  • Linux 下make显示: fatal error: GL/freeglut.h: 没有那个文件或目录

    Linux 下make显示: fatal error: GL/freeglut.h: 没有那个文件或目录

    gcc -c ../../platform/linux/px_display.c -o ../../platform/linux/px_display.o -I "../../project" -I "../.." -I "../../platform/linux" In file included from ../../platform/linux/px_display.c:1: ../../platform/linux/px_display.h:3:10: fatal error: GL/freeglut.h: 没有那个文件或目录 3 | #include <GL/freeglut.h> | ^~~~~~~~~~~~~~~ compilation terminated.

    麻烦解答下

    opened by julylLes 2
  • api文档错误

    api文档错误

    px_void* PX_ListPush(px_list *list, px_void *data, px_int size) 和api文档的不一致

    px_byte *PX_MemoryFine(px_memory *memory, const px_void *buffer, px_int size) api文档里面是find

    opened by synodriver 2
  • androidstudio 编译出现 ninja: error: loading 'build.ninja': No such file or directory

    androidstudio 编译出现 ninja: error: loading 'build.ninja': No such file or directory

    开发环境是Cmake + Mac
    `FAILURE: Build failed with an exception.

    • What went wrong: Execution failed for task ':app:externalNativeBuildCleanDebug'.

    Build command failed. Error while executing process /Users/1/Library/Android/sdk/cmake/3.6.4111459/bin/cmake with arguments {--build /Users/yijunchao/Desktop/tang/sound/SoundLibAndroid/app/.cxx/cmake/debug/armeabi-v7a --target clean} ninja: error: loading 'build.ninja': No such file or directory `

    opened by telyo 2
  • 'android/asset_manager.h' file not found

    'android/asset_manager.h' file not found

    macos上编译报错:

    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_3D.c -o /Users/2333333/Downloads/PainterEngine/core/PX_3D.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_AES.c -o /Users/2333333/Downloads/PainterEngine/core/PX_AES.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_ANN.c -o /Users/2333333/Downloads/PainterEngine/core/PX_ANN.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Arle.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Arle.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Base64.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Base64.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_BaseGeo.c -o /Users/2333333/Downloads/PainterEngine/core/PX_BaseGeo.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Bitmap.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Bitmap.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_BpNeural.c -o /Users/2333333/Downloads/PainterEngine/core/PX_BpNeural.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Effect.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Effect.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Font.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Font.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Hashmap.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Hashmap.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Huffman.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Huffman.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_KalmanFilter.c -o /Users/2333333/Downloads/PainterEngine/core/PX_KalmanFilter.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Linker.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Linker.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_List.c -o /Users/2333333/Downloads/PainterEngine/core/PX_List.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Log.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Log.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_MFCC.c -o /Users/2333333/Downloads/PainterEngine/core/PX_MFCC.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Memory.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Memory.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_MemoryPool.c -o /Users/2333333/Downloads/PainterEngine/core/PX_MemoryPool.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Packet.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Packet.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_ParallelCore.c -o /Users/2333333/Downloads/PainterEngine/core/PX_ParallelCore.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Quadtree.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Quadtree.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Quicksort.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Quicksort.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Sha256.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Sha256.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Sound.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Sound.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_SoundModule.c -o /Users/2333333/Downloads/PainterEngine/core/PX_SoundModule.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_String.c -o /Users/2333333/Downloads/PainterEngine/core/PX_String.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Surface.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Surface.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_TRaw.c -o /Users/2333333/Downloads/PainterEngine/core/PX_TRaw.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Texture.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Texture.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_TriangleCross.c -o /Users/2333333/Downloads/PainterEngine/core/PX_TriangleCross.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Tuning.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Tuning.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Typedef.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Typedef.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Vector.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Vector.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_Wave.c -o /Users/2333333/Downloads/PainterEngine/core/PX_Wave.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_curve25519.c -o /Users/2333333/Downloads/PainterEngine/core/PX_curve25519.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/core/PX_rbtree.c -o /Users/2333333/Downloads/PainterEngine/core/PX_rbtree.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_3D_ObjData.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_3D_ObjData.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_Animation.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_Animation.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_Json.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_Json.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_Lexer.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_Lexer.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_MODBUS.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_MODBUS.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_Object.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_Object.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_Partical.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_Partical.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_Resource.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_Resource.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_Script_ASMCompiler.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_Script_ASMCompiler.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_Script_Interpreter.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_Script_Interpreter.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_Script_VM.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_Script_VM.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_SoundLab.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_SoundLab.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_Sync.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_Sync.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/kernel/PX_World.c -o /Users/2333333/Downloads/PainterEngine/kernel/PX_World.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/architecture/PainterEngine_Console.c -o /Users/2333333/Downloads/PainterEngine/architecture/PainterEngine_Console.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/architecture/PainterEngine_MessageBox.c -o /Users/2333333/Downloads/PainterEngine/architecture/PainterEngine_MessageBox.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/architecture/PainterEngine_Runtime.c -o /Users/2333333/Downloads/PainterEngine/architecture/PainterEngine_Runtime.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    gcc -c /Users/2333333/Downloads/PainterEngine/platform/linux/linux_file.c -o /Users/2333333/Downloads/PainterEngine/platform/linux/linux_file.o -I "/Users/2333333/Downloads/PainterEngine" -I "/Users/2333333/Downloads/PainterEngine/platform/linux"
    In file included from /Users/2333333/Downloads/PainterEngine/platform/linux/linux_file.c:2:
    /Users/2333333/Downloads/PainterEngine/platform/linux/linux_file.h:10:10: fatal error:
          'android/asset_manager.h' file not found
    #include <android/asset_manager.h>
             ^~~~~~~~~~~~~~~~~~~~~~~~~
    1 error generated.
    make: *** [/Users/2333333/Downloads/PainterEngine/platform/linux/linux_file.o] Error 1
    

    但是android目录里的确没有asset_manager.h

    opened by dongguaguaguagua 2
  • 在Linux上运行需要修改

    在Linux上运行需要修改

    1、安装依赖库 sudo apt-get install build-essential freeglut3 freeglut3-dev binutils-gold

    2、修改makefile

    
    ```diff --git a/platform/linux/makefile b/platform/linux/makefile
    index d3fb1c5..b995da0 100644
    --- a/platform/linux/makefile
    +++ b/platform/linux/makefile
    @@ -29,7 +29,7 @@ all:$(project_build_o)  $(painterengine_build_painterengine_o)
            -I "$(painterengine_path)" \
            -I "$(project_path)" \
            -I "$(painterengine_path)/platform/linux" \
    -       -L. -lGL -lglut
    +       -L. -lGL -lglut -lpthread
    
    
     $(project_path)/%.o:$(project_path)/%.c
    
    opened by weiqifa0 1
  • SLES/OpenSLES.h: No such file or directory

    SLES/OpenSLES.h: No such file or directory

    SLES/OpenSLES.h: No such file or directory

    When I cd into PainterEngine/platform/linux, and use sudo make command to install the engine, the error occured. I wander if I have to install Android NDK or anything else?

    By the way, my platform via uname -a is Linux VM-4-14-ubuntu 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux.

    opened by Loikeid 1
  • PX_LoadFontModuleFromFile ERROR

    PX_LoadFontModuleFromFile ERROR

    I'm a starter and cloned your repo today (3rd May, 2020). While I tried to use the font module like your answer on https://www.zhihu.com/question/35391145 on VS2019, it said Error C3861: 'PX_LoadFontModuleFromFile': identifier not found. Then I searched all the PainterEngine codes, I could not find the function either. So, have you moved these codes, or you created a new way to do this work? How should I do to render fonts by custom? BTW, your jpg/png decoder libs seems to be 32-bit. If I want a 64-bit version, what should I do?

    opened by Chaotze 1
  • PainterEngine\Core\PX_Typedef.c:1404 error: conflicting types for 'PX_strset'

    PainterEngine\Core\PX_Typedef.c:1404 error: conflicting types for 'PX_strset'

    在PX_Typedef.c中: px_void PX_strset(px_char *dst,const px_char*src) { dst[0]=0; PX_strcat(dst,src); } 在PX_Typedef.h中: px_void PX_strset(px_void *dst,const px_void *src);

    opened by bushix 1
  • platform/windows/makefile中的`\`可能会出问题

    platform/windows/makefile中的`\`可能会出问题

    如图 image 把和路径相关的\换成/才行

    #mingw32-64 makefile
    #####################################################
    target :=PainterEngine.exe
    project_path := ../../project
    painterengine_path := ../..
    #####################################################
    
    project_build := $(wildcard $(project_path)/*.c)
    project_build_o := $(patsubst %.c,%.o,$(project_build))
    
    painterengine_build_core := $(wildcard $(painterengine_path)/core/*.c)
    painterengine_build_painterengine_o := $(patsubst %.c,%.o,$(painterengine_build_core))
    
    painterengine_build_kernel := $(wildcard $(painterengine_path)/kernel/*.c)
    painterengine_build_painterengine_o += $(patsubst %.c,%.o,$(painterengine_build_kernel))
    
    painterengine_build_architecture := $(wildcard $(painterengine_path)/architecture/*.c)
    painterengine_build_painterengine_o += $(patsubst %.c,%.o,$(painterengine_build_architecture))
    
    painterengine_build_platform := $(wildcard $(painterengine_path)/platform/windows/*.c)
    painterengine_build_painterengine_o += $(patsubst %.c,%.o,$(painterengine_build_platform))
    
    painterengine_build_platform := $(wildcard $(painterengine_path)/platform/windows/*.cpp)
    painterengine_build_painterengine_o += $(patsubst %.cpp,%.o,$(painterengine_build_platform))
    
    all:$(project_build_o)  $(painterengine_build_painterengine_o) 
    	gcc $(project_build_o) $(painterengine_build_painterengine_o) \
    	-o $(project_path)/$(target) \
    	-I "$(painterengine_path)" \
    	-I "$(project_path)" \
    	-I "$(painterengine_path)/platform/windows" \
    	-L. -lwinmm -ld2d1 -lws2_32 -ldsound -lcomdlg32
    	$(project_path)/$(target)
    	make clean
    	
    
    $(project_path)/%.o:$(project_path)/%.c
    	gcc -c $^ -o [email protected] -I "$(painterengine_path)" -I "$(painterengine_path)/platform/windows" 
    
    $(painterengine_path)/architecture/%.o:$(painterengine_path)/architecture/%.c 
    	gcc -c $^ -o [email protected] -I "$(painterengine_path)"
    
    $(painterengine_path)/kernel/%.o:$(painterengine_path)/kernel/%.c
    	gcc -c $^ -o [email protected]
    
    $(painterengine_path)/core/%.o:$(painterengine_path)/core/%.c
    	gcc -c $^ -o [email protected]
    
    $(painterengine_path)/platform/windows/%.o:$(painterengine_path)/platform/windows/%.c
    	gcc -c $^ -o [email protected] -I "$(project_path)" -I "$(painterengine_path)" -I "$(painterengine_path)/platform/windows"
    
    
    .PHONY:clean
    clean:
    	-del /s  "$(painterengine_path)/core/*.o"
    	-del /s  "$(painterengine_path)/kernel/*.o"
    	-del /s  "$(painterengine_path)/architecture/*.o"
    	-del /s  "$(painterengine_path)/platform/windows/*.o"
    	-del /s  "$(project_path)/*.o"
    
    opened by TideDlrow 0
Owner
DBinary
DBinary
Software RayTracing engine written in C++ without the usage of any libraries.

Software Raytracing Engine This is a software unidirectional raytracing engine, fully written in C++17, with no dependencies or external libraries use

Makar Ivashko 1 May 4, 2022
nsfminer is an Ethash GPU mining application: with nsfminer you can mine every coin which relies on an Ethash Proof of Work.

nsfminer (no stinkin' fees) Ethereum (ethash) miner with OpenCL, CUDA and stratum support nsfminer is an Ethash GPU mining application: with nsfminer

Jean M. Cyr 508 May 11, 2022
Open 3D Engine (O3DE) is an Apache 2.0-licensed multi-platform AAA Open 3D Engine

Open 3D Engine (O3DE) is an Apache 2.0-licensed multi-platform 3D engine that enables developers and content creators to build AAA games, cinema-quality 3D worlds, and high-fidelity simulations without any fees or commercial obligations.

O3DE 4.8k May 18, 2022
OpenGL Object Loading can load virtually every 3d.obj file you can find on the internet, without using another object loading library

OpenGL Object Loading can load virtually every 3d.obj file you can find on the internet, without using another object loading library (assimp for example). The program can load Object with 12M+ triangles and more

Phan Sang 1 Jan 25, 2022
Cross-platform 2D and 3D game engine.

Urho3D Urho3D is a free lightweight, cross-platform 2D and 3D game engine implemented in C++ and released under the MIT license. Greatly inspired by O

null 4k May 15, 2022
Open-source, cross-platform, C++ game engine for creating 2D/3D games.

GamePlay v3.0.0 GamePlay is an open-source, cross-platform, C++ game framework/engine for creating 2D/3D mobile and desktop games. Website Wiki API De

gameplay3d 3.6k May 9, 2022
Software ray tracer written from scratch in C that can run on CPU or GPU with emphasis on ease of use and trivial setup

A minimalist and platform-agnostic interactive/real-time raytracer. Strong emphasis on simplicity, ease of use and almost no setup to get started with

Arnon Marcus 42 Apr 23, 2022
A toy renderer written in C using Vulkan to perform real-time ray tracing research.

This is a toy renderer written in C using Vulkan. It is intentionally minimalist. It has been developed and used for the papers "BRDF Importance Sampl

Christoph Peters 225 May 15, 2022
physically based renderer written in DX12 with image-based lighting, classic deffered and tiled lighting approaches

Features Classical Deferred Renderer Physically Based shading Image Based Lighting BRDF Disney model (Burley + GGX) Tangent space normal mapping Reinh

Alena 34 Apr 27, 2022
2D GPU renderer for dynamic UIs

vger vger is a vector graphics renderer which renders a limited set of primitives, but does so almost entirely on the GPU. Works on iOS and macOS. API

Audulus LLC 93 May 6, 2022
work in progress 3d renderer based on sdl2

work in progress 3d software renderer based on SDL. (Only supports wireframe view for now) Building On Linux, install libsdl2 and then run the folowin

null 4 Sep 12, 2021
work in progress 3d renderer based on sdl2

work in progress 3d software renderer based on SDL. (Only supports wireframe view for now) Building On Linux, install libsdl2 and then run the folowin

Jayachandra Kasarla 4 Sep 12, 2021
Ipsys Particle System Yey letS go, very cool particle system generator and fast renderer

ipsys - Ipsys Particle System Yey letS go About Ipsys is a piece of software that focuces on running and displaying cool randomly generated particule

Anima Libera 5 Nov 24, 2021
A modern C++ physically based renderer

The Dakku Renderer Warning: This project is currently under developing and does not guarantee any consistency. About Dakku is a physically based rende

xehoth 6 Apr 15, 2022
A Simple Spectral Renderer

Simple Spectral This is a simple multithreaded spectral pathtracer implementing the algorithm (linear combination of bases) described in our EGSR 2019

Ian Mallett 156 May 13, 2022
Source code for pbrt, the renderer described in the third edition of "Physically Based Rendering: From Theory To Implementation", by Matt Pharr, Wenzel Jakob, and Greg Humphreys.

pbrt, Version 3 This repository holds the source code to the version of pbrt that is described in the third edition of Physically Based Rendering: Fro

Matt Pharr 4.1k May 11, 2022
An immediate-mode, renderer agnostic, lightweight debug drawing API for C++

Debug Draw An immediate-mode, renderer agnostic, lightweight debug drawing API for C++. License This software is in the public domain. Where that dedi

Guilherme Lampert 424 Apr 27, 2022
A dx12 river renderer using wave particles with interactive vortices.

Wave Particles with Interactive Vortices Final Result Overview In game industry water can be divided into two domains, ocean and river. This project f

ACskyline 196 May 7, 2022
3D engine from scratch (without OpenGL or any other 3D graphics library)

Simple 3d engine based on SFML library. I tried to make this engine powerful and easy to understand.

Vectozavr 20 Apr 6, 2022