Creative Coding Framework for C++ / トラスシー

TrussC

GPUネイティブなクリエイティブコーディング。
sokolベース。

MIT License C++20 Metal / DX12 / Vulkan

Simple & Intuitive

updateしてdraw。他のやつとだいたい一緒です。

tcApp.cpp
#include "tcApp.h"

void tcApp::setup() {
    // ループモード設定
    setLoopMode(LoopMode::Game);

    // 画像を読み込む
    image = make_shared<Texture>("test.png");
}

void tcApp::update() {
    angle += TAU * 0.005f;
}

void tcApp::draw() {
    clear(0.1f, 0.1f, 0.1f);

    pushMatrix();
    translate(640, 360);
    rotate(angle);
    image->draw(-50, -50, 100, 100);
    popMatrix();
}
main.cpp
#include "TrussC.h"
#include "tcApp.h"

// バックエンド実装定義
#define SOKOL_IMPL
#include "sokol_app.h"

// これだけで起動!
TC_MAIN(tcApp)

Design

結構困ってたので、解決しました。

モダングラフィックス

sokol_gfxがMetal、DX12、Vulkanを駆動。 OpenGL依存なし。

GPLフリー

MIT / zlib / Public Domain のみ。 FFmpeg不要—動画はAVFoundation & Media Foundation。

クロスプラットフォーム

macOS、Windows、Linux、Web対応。iOSは計画中。

カンタン

クリックで新規作成できるし、AIにも聞ける。サンプルもいっぱいある。

プロジェクトジェネレーター

GUIでプロジェクト作成・アドオン管理。 コマンドライン不要。

AIに聞く

質問はTrussC Assistantへ。聞きながら始めればつまづかない。コード生成もわりとできます。 試してみる →

30以上のサンプル

グラフィックス、サウンド、動画、ネットワークなど。 ブラウザで試す →

Tech Stack

「自前実装」と「高品質な軽量ライブラリ」のハイブリッド構成。

Core

sokol_app

ウィンドウ・入力・コンテキスト管理

zlib
Graphics

sokol_gfx

Metal / DX12 / Vulkan バックエンド

zlib
Scene

Node System

シーングラフ・イベント伝播

自前実装
Math

C++20 Template

ベクトル・行列演算

Public Domain
Image

stb_image

画像読み込み・書き出し

Public Domain
Font

stb_truetype

フォントレンダリング

Public Domain
Audio

sokol_audio + dr_libs

音声入出力・ファイル再生

zlib / PD
Video

Native Wrapper

AVFoundation / Media Foundation

自前実装