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
Comments
  • 在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
  • 基于 PainterEngine Public 的 live 2d 编辑器编译失败

    基于 PainterEngine Public 的 live 2d 编辑器编译失败

    尝试过 vs2022 和 vs2019, 最后都会报错,看起来是 libpng 和 libjpeg 库有问题:

    image

    最终我学着painterEngine的编译版本的样子做了个 mingw + painterEngine + live 2d ,其中带有 libpng 和 libjpeg ,点击【编译.bat】可编译: image

    分享给拐子快速入坑,mingw + painterEngine + live 2d(370MB):链接:https://pan.baidu.com/s/1uVD7mhzpMjc0A_YIT_PjGw?pwd=msib 提取码:msib --来自百度网盘超级会员V3的分享

    opened by Jamlee 2
  • 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 JulyLies 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
  • 内存池的调试检查在多线程下引发异常

    内存池的调试检查在多线程下引发异常

    https://github.com/matrixcascade/PainterEngine/blob/b1b024c7d8c410234b60b3b6e5aa682105a801e6/core/PX_MemoryPool.c#L6-L7 他们两个都是全局变量,在多线程下会在不同的内存池之间引发异常

    opened by wuke32767 1
  • 或许是个bug

    或许是个bug

    在\kernel\PX_Object_CursorButton.c的函数PX_Object_CursorButtonCreate(px_memorypool *mp,..)中,visual studio发现:

    	pObject=PX_ObjectCreate(mp,Parent,(px_float)x,(px_float)y,0,(px_float)Width,(px_float)Height,0);
    	if (pObject==PX_NULL)
    	{
    		MP_Free(pObject->mp,pCb);
    		return PX_NULL;
    	}
    

    这一部分中MP_Free的第一个参数pObject->mppObject是一个nullptr,不能解引用。 联系上文:

    	PX_Object_CursorButton *pCb=(PX_Object_CursorButton *)MP_Malloc(mp,sizeof(PX_Object_CursorButton));
    

    也许你的意思是MP_Free(mp,pCb);?

    opened by wuke32767 1
  • 编译 linux 平台失败

    编译 linux 平台失败

    
    root@centos7:~/.../platform/linux# make
    gcc -c ../../project/PainterEngine_Application.c -o ../../project/PainterEngine_Application.o -I "../.." -I "../../platform/linux"
    In file included from ../../project/PainterEngine_Startup.h:8:0,
                     from ../../project/PainterEngine_Application.h:8,
                     from ../../project/PainterEngine_Application.c:1:
    ../../platform/others/PainterEngineVK_for_windows/api/PainterEngineVK.h:4:21: fatal error: windows.h: No such file or directory
     #include <windows.h>
                         ^
    compilation terminated.
    make: *** [../../project/PainterEngine_Application.o] Error 1
    
    
    # 环境
    root@centos7:~/.../platform/linux# pwd
    /root/work/PainterEngine/platform/linux
    
    uname -a
    Linux centos7.localdomain 3.10.0-1160.66.1.el7.x86_64 #1 SMP Wed May 18 16:02:34 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
    
    gcc --version
    gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
    Copyright (C) 2015 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    opened by jcleng 1
  • 在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
  • 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 $@ -I "$(painterengine_path)" -I "$(painterengine_path)/platform/windows" 
    
    $(painterengine_path)/architecture/%.o:$(painterengine_path)/architecture/%.c 
    	gcc -c $^ -o $@ -I "$(painterengine_path)"
    
    $(painterengine_path)/kernel/%.o:$(painterengine_path)/kernel/%.c
    	gcc -c $^ -o $@
    
    $(painterengine_path)/core/%.o:$(painterengine_path)/core/%.c
    	gcc -c $^ -o $@
    
    $(painterengine_path)/platform/windows/%.o:$(painterengine_path)/platform/windows/%.c
    	gcc -c $^ -o $@ -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 3 Nov 16, 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 511 Sep 2, 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 5.8k Jan 7, 2023
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 15 Dec 18, 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 4.2k Jan 4, 2023
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.9k Jan 2, 2023
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 48 Dec 28, 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 64 Dec 10, 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 290 Dec 19, 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 35 Dec 13, 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 172 Dec 30, 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 May 26, 2022
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 161 Dec 8, 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.4k Jan 7, 2023
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 457 Dec 24, 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 221 Dec 26, 2022