Code Monkey home page Code Monkey logo

painterengine's Introduction

PainterEngine Title

PainterEngine是一个由C语言编写的跨平台图形引擎,支持windows/linux/ios/android/webassembly甚至无操作系统的裸嵌入式平台,它基于组件化的设计模式,即使是C语言初学者,也可以在几分钟内掌握它的使用,PainterEngine Make允许您一键将您的PainterEngine项目编译到多个平台. 它涵盖了基础数据结构、图形学、声学、数字信号处理、编译原理、虚拟机系统、密码学、人机交互、游戏引擎等多个领域,你既可以用它制作微应用,也可以将它作为学习项目。

PainterEngine is a cross-platform graphics engine written in C language, with support for Windows, Linux, iOS, Android, WebAssembly, and even bare-metal embedded platforms without OS. It is built on a component-based design pattern, making it accessible to even C language beginners . PainterEngine Make enables you to compile your PainterEngine project for multiple platforms with just one click. It covers various fields including basic data structures, graphics, acoustics, digital signal processing, compiler design, virtual machine systems, cryptography, human-computer interaction, game engines, and more. You can use it to create mini-applications or as a learning project for acquiring knowledge.

30秒快速入门PainterEngine

30-Second Quick Start Guide to PainterEngine

将PainterEngine引入到您的C/C++项目中,仅仅需要"#include "PainterEngine.h"

To incorporate PainterEngine into your project, all you need is

#include "PainterEngine.h"

使用PainterEngine_Initialize,快速创建一个图形化的交互式界面

Utilize 'PainterEngine_Initialize' to swiftly create a graphical interactive interface.

#include "PainterEngine.h"
int main()
{
	PainterEngine_Initialize(800, 600);
	return 1;
}

创建组件,或者....创造自己的组件

Create components or even craft your own.

#include "PainterEngine.h"
int main()
{
	PainterEngine_Initialize(800, 600);
	PX_Object_Firework01Create(mp, root,200,600);
	PX_Object_Firework01Create(mp, root,400,600);
	PX_Object_Firework01Create(mp, root,600,600);
	return 1;
}

PainterEngine firework

使用PainterEngine Make快速将您的项目编译到Windows Linux WebAssembly Android等任意平台,一键编译部署,源码无需修改,零成本移植

Use "PainterEngine Make" to quickly compile and deploy your project to various platforms such as Windows, Linux, WebAssembly, Android, and more. One-click compilation and deployment, with no need to modify the source code, enabling seamless portability at zero cost

PainterEngine make

PainterEngine make

快速开发,无缝迁移

Swift development and smooth transitions

如果您不需要PainterEngine Make提供的一键编译功能,希望使用自己常用的IDE开发PainterEngine程序或组件,您只需要:

  1. 将"PainterEngine/core","PainterEngine/kernel","PainterEngine/runtime"的所有代码,添加到您的项目中.

  2. 在PainterEngine/platform中选择您的工作平台(例如windows中选择PainterEngine/platform/windows),并将对应文件夹中的所有代码添加到您的项目中.

  3. 将PainterEngine所在目录,添加到包含目录中.

  4. 将您的代码添加进项目中.

即可使用您的IDE完成PainterEngine的编译,PainterEngine库将尽力保证所有平台的的运行结果一致性,在windows上开发,同样在Android/web/linux/ios..中能够得到一致的结果.

If you don't need the one-key compilation feature provided by PainterEngine Make and prefer to develop PainterEngine programs or components using your preferred IDE, you just need to:

  1. Add all the code from PainterEngine/core, PainterEngine/kernel, and PainterEngine/runtime to your project.

  2. Select your working platform in PainterEngine/platform (eg: choose PainterEngine/platform/windows for Windows), and add all the code from the corresponding folder to your project.

  3. Include the directory containing PainterEngine source code in your project's include directories.

  4. Add your code to the project.

You can now use your IDE to compile PainterEngine with these steps. PainterEngine library will strive to ensure consistent results across all platforms. What you develop on Windows will yield consistent results on Android, web, Linux, iOS, and more."

不仅是图形库,更是应用程序框架

Not just a graphics library but also an application framework.

functions support Description
内存池 alloc/free 平台无关的内存池实现
数学库 sin/cos/tan/arcsin/log/exp/relu.... 绝大部分c标准数学库的完整实现
信号处理 dft/dct/fft/dwt/window functions/mfcc/.... 傅里叶/余弦/小波变换,常用窗函数,mfcc等特征采集算法...等等信号处理相关基础函数及上层特征采集算法
数据结构 string/vector/list/map/stack/fifo/circular-buffer... 平台无关的数据结构算法实现
密码学 curve25519/AES/SHAx/MD5... 包含常用的密钥对称算法及密钥协商算法
图片支持 PNG/JPG/GIF/BMP 支持PNG/JPG/GIF/BMP解码及PNG编码.
音频支持 WAV/MP3 支持Wav,Mp3解码.及Wav编码
字模支持 ttf 支持ttf字模文件(由stb_truetype.c移植而来)
几何绘制 Line/Triangle/Rectangle/Circle/Ring/Sector/Rounded..... 常用几何光栅化实现
渲染器 2D/3D 2D 3D渲染器实现及一个高质量制图引擎
动画 2dx/live2D 2D 动画和一个类Live2D 骨骼动画系统
声学模型 mixer/piano/ks 包含一个混音器实现,一个相位声码器,一个物理建模的钢琴及karplus-strong合成的拨弦模型,直接合成PCM音频流
脚本引擎 Compiler/VM/Debugger A一个完整的脚本引擎,包含编译器虚拟机调试器
UI框架 button/radio/image/edit/label/list.... UI框架实现
协议 MQTT/MODBUS/Game-network-synchronization 常用的通讯协议
游戏引擎 集成一个游戏世界框架

还有更多探索...

///////////////////////////////////////////////////////////////////////////////

functions support Description
memorypool alloc/free Platform-agnostic memory management implementation.
math sin/cos/tan/arcsin/log/exp/relu.... The complete implementation of the vast majority of C standard math libraries.
signal processing dft/dct/fft/dwt/window functions/mfcc/.... Fourier/Cosine/Wavelet Transform, common window functions, MFCC (Mel-Frequency Cepstral Coefficients), and other signal processing fundamental functions and higher-level feature extraction algorithms, etc.
Data structures string/vector/list/map/stack/fifo/circular-buffer... Platform-agnostic common data structures and algorithms.
Cryptography curve25519/AES/SHAx/MD5... This includes commonly used symmetric key algorithms and key exchange algorithms.
image codec PNG/JPG/GIF/BMP Supports decoding of PNG/JPG/GIF/BMP images and encoding of PNG images.
audio codec Wav/Mp3 Supports decoding of Wav/Mp3 and encoding of Wav.
fontmodule TTF Support fontmodule of truetype(reference:stb_truetype.c)
Geometric Line/Triangle/Rectangle/Circle/Ring/Sector/Rounded..... Geometric rasterization
Renderer 2d/3d Implementation of a 2D/3D software renderer. A painting engine.
sound VC codec/mixer/piano/ks Includes an implementation of a VC(voice conversion), a mixer, a physically-modeled piano and Karplus-Strong string synthesis. Direct synthesis of PCM audio streams.
Animation 2dx/live2D 2D frame-by-frame animation and a Live2D-style animation system.
PainterScript Compiler/VM/Debugger A complete scripting engine, including a compiler, virtual machine, and debugger.
UI button/radio/image/edit/label/list.... Implementation of common UI controls.
protocals MQTT/MODBUS/Game-network-synchronization Common communication protocols.
Game framework. PainterEngine Game Framework

Many more to explore....

组件化开发,支持设计器模式,简单的不能再简单

Component-based development with support for a designer mode, making it as simple as it gets

PainterEngine designer

海量组件,创意无界

An abundance of components to unleash your creativity without limitations.

PainterEngine market

PainterEngine market

PainterEngine market

PainterEngine market

现在,访问PainterEngine.com,参与建设

Now, join the PainterEngine.com contribute to its development.

painterengine's People

Contributors

782307413 avatar blueloveth avatar chenyichen12 avatar chunqian avatar emrof-h avatar jarlonerain avatar ksgfk avatar luhuadong avatar matrixcascade avatar pozhu15 avatar prcuvu avatar qinglanyu avatar qishipai avatar taohanxu avatar timgates42 avatar zhuyf233 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

painterengine's Issues

windows平台的编译目标设置错误

windows平台的makefile里编译的目标文件地址为$(project_path)\$(target),这2个变量的值如下

target :=..\..\project\PainterEngine.exe
project_path := ..\..\project

目标文件地址会变成..\..\project\..\..\project\PainterEngine.exe,但实际上是..\..\project\PainterEngine.exe,于是会出现文件不存在的错误,把target的值改为PainterEngine.exe后可以正常编译

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.

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.

麻烦解答下

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

在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

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"

基于 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的分享

编译 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.

或许是个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);?

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
`

在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

'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

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

我在docker linux gcc环境下make,make报错

我在PainterEngine/platform/linux下make,报错
In file included from ../../platform/linux/px_display.c:1:
../../platform/linux/px_display.h:3:10: fatal error: GL/freeglut.h: No such file or directory
3 | #include <GL/freeglut.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
make: *** [makefile:48: ../../platform/linux/px_display.o] Error 1
请问如何解决.

pointer uninitialized

painterengine\core\px_3d.c(862): error C4703: potentially uninitialized local pointer variable 'pface' used

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?

有机会提供winform范例吗?

如题,想利用painterengine实作一个node editor,但要使用winform及c#呼叫使用,不知道可否给一个思路呢,感谢。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.