The Wayback Machine - https://web.archive.org/web/20200905051345/https://github.com/osom8979/tbag/
Skip to content
master
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Dec 27, 2019
Jul 26, 2019
Jan 8, 2018

README.md

TBAG

Introduction

Tea-bag is Third party extension utility project.

Dep target

  • simdpp 2.1 (Boost Software License, Version 1.0)
  • stb master-e6afb9c (Public Domain or MIT license)
  • imgui 1.70 (MIT license)
  • imnodes master-68af72f (MIT license)
  • raylib 2.5-dev (zlib license)

External target

  • libressl 2.9.2 (Dual license; OpenSSL & SSLeay)
  • zlib 1.2.11 (zlib license)
  • libuv 1.38.1 (MIT license)
  • freetype 2.9.1 (FreeType License)
  • LuaJIT 2.0.5 (MIT license)
    • LuaDist/LuaJIT-CMakeLists.txt 2.0.3 (MIT license)
  • bzip2 1.0.5 (BSD-like license)
  • xz/liblzma 5.2.4 (Public domain)
  • libarchive 3.3.3 (New BSD license)
  • CMake 3.13.4 (BSD 3-Clause license)
    • external/archive/build/Modules/CMakePushCheckState.cmake
  • gperftools 2.7 (BSD 3-Clause license)
  • nng 1.3.0 (MIT license)
  • glfw 3.3 (zlib license)
  • sqlite 3.28.0 (Public Domain)
  • date master-27d1e1e (MIT license)
  • lmdb bbc15ab (The OpenLDAP Public License)
  • civetweb master-2100e66 (MIT license)
  • asmjit master-5d40561 (zlib license)
  • blend2d master-934d071 (zlib license)
  • OpenBLAS 0.3.7 (BSD 3-Clause license)
  • icu4c 57.1 (ICU license; http://source.icu-project.org/repos/icu/icu/trunk/LICENSE)
  • flatbuffers 1.10.0 (Apache License, Version 2.0)
  • gtest 1.7.0 (BSD 3-clause license)
  • http-parser 2.8.1 (MIT license)
  • minizip 1.1 (zlib license)
  • demangle (google-glog) 0.3.4 (BSD 3-clause license)
  • lemon 1.3.1 (Boost Software License, Version 1.0)
  • lfds 7.1.1 (Public domain)

Inline libraries

  • fmt 6.2.1 (MIT license)
  • jsoncpp 1.8.4 (MIT license)
  • tinyxml2 7.0.1 (zlib license)

Resources

  • NanumGothicCoding 2.5 (SIL Open Font License, Version 1.1)

Dependencies

## x11, xRandr
sudo apt-get install xorg-dev

## OpenGL
sudo apt-get install libglu1-mesa-dev

Optional:

## OpenCL
sudo apt-get install ocl-icd-opencl-dev

## UDev
sudo apt-get install libudev-dev

## xcb-image
sudo apt-get install libxcb-image0-dev

Programming rules.

  • Do not use exception expressions.

CMake build options.

The main build options you will want to configure are as follows:

  • USE_CCACHE: Enable ccache compile.
  • USE_GOLD: Enable ld.gold linker if gcc compiler.
  • USE_PCH: Enable PCH compile.
  • USE_OPENGL: Enable OpenGL library.
  • USE_OPENCL: Enable OpenCL library.
  • USE_CUDA: Enable CUDA compile.
  • USE_DOXYGEN: Enable doxygen documentation.
  • USE_RTTI: Enable RTTI flag.
  • DISABLE_TDLOG: Disable tbag default logger.
  • DISABLE_LUAJIT_EXE_FLAGS: Disable LuaJIT Embedding flags if apple.
  • DISABLE_DEFAULT_TPOT_LUAJIT: Do not use the default TpoT mode as LuaJIT.
  • DISABLE_TESTER: Do not build the tester target.
  • INSTALL_WITH_FAKE_LUAJIT: Install fake LuaJIT.

Tpot

Environment variables.

  • EMPTY.

Game Engine

Simple example

luajit + raylib + imgui example:

-- Core - Basic window

width = 800
height = 450

tbag.SetConfigFlags(tbag.FLAG_WINDOW_RESIZABLE);
tbag.InitWindow(width, height, 'Basic window')
tbag.GuiInitRay()
tbag.GuiNodesInitialize()
tbag.SetTargetFPS(60)

gradient = tbag.GenImageGradientV(400, 400, tbag.RED, tbag.BLUE);
texture = tbag.LoadTextureFromImage(gradient);
tbag.UnloadImage(gradient);
gradient = nil

while not tbag.WindowShouldClose() do
    tbag.GuiUpdateRay()
    if tbag.GuiBegin('Window') then
        tbag.GuiText('Label')
    end
    tbag.GuiEnd()

    tbag.GuiShowDemoWindow()
    tbag.GuiNodesShowDemoWindow()

    tbag.BeginDrawing()
    tbag.ClearBackground({30, 30, 30})
    tbag.DrawTexture(texture, 0, 0, tbag.WHITE);
    tbag.DrawCircleV({width/2, height/2}, 50, tbag.RED);
    text = tbag.format('Current FPS: {}', tbag.GetFPS())
    tbag.DrawText(text, 10, 20, 20, {200, 200, 200});
    tbag.EndDrawing()
end

tbag.UnloadTexture(texture);
texture = nil

tbag.GuiNodesShutdown()
tbag.GuiShutdownRay()
tbag.CloseWindow()

License

See the LICENSE file for details. In summary, tbag is licensed under the MIT license.

ASCII Logo

+--------------------------+
|    __  __                |
|   / /_/ /_  ____ _____ _ |
|  / __/ __ \/ __ `/ __ `/ |
| / /_/ /_/ / /_/ / /_/ /  |
| \__/_.___/\__,_/\__, /   |
|                /____/    |
| Third party libs package |
+--------------------------+
You can’t perform that action at this time.