Coder Social home page Coder Social logo

blocamlimb / modernui Goto Github PK

View Code? Open in Web Editor NEW
267.0 4.0 14.0 52.42 MB

Modern desktop framework from low-level 3D graphics API to high-level view model, for development of 2D/3D rendering software or game engine, with internationalization support and many new technologies.

License: GNU Lesser General Public License v3.0

Java 98.44% GLSL 0.74% Kotlin 0.82%
ui framework api library font gui shaders opengl 2d-graphics rendering-pipeline

modernui's Introduction

Modern UI

MavenCore Discord

Description

Modern UI (by Icyllis Milica) is a desktop application framework designed for standalone 2D and 3D rendering software development. It makes use of modern 3D graphical APIs and technologies to provide high real-time rendering performance. This framework is similar to JavaFX or Android, with a complete set of event loops, rendering systems, and UI components, which are also suitable for game development.

There is also an official version that extends to Minecraft and Forge, it combines Modern UI with Minecraft and provides a number of additional features and modding APIs. See ModernUI-MC repository.

What are the advantages?
Powerful UI functionality, good internationalization support, complete text layout engine based on HarfBuzz. This framework has a powerful graphics engine, which is good to OpenGL 3.3 and OpenGL 4.5 core profiles and is specifically optimized for desktop GPUs, some engine designs are better than Google Skia.

This project is still at a relatively early stage.
Releases for Minecraft Mod are available on CurseForge.
If you have any questions, feel free to join our Discord server.

License

  • Modern UI
    • Copyright (C) 2019-2024 BloCamLimb
    • License
    • Copyright (C) 2006 The Android Open Source Project
    • License
  • Runtime Libraries
    • lwjgl licensed under BSD-3-Clause
    • fastutil by Vigna, licensed under Apache-2.0
    • caffeine by Ben Manes, licensed under Apache-2.0
    • log4j licensed under Apache-2.0
    • icu4j by Unicode, Inc. see LICENSE

Documentation

JavaDoc
Specification (WIP)

Environment requirements

  • Windows 10 or above, Linux, macOS 10.10 or above
  • JDK 17.0.1 or above
  • OpenGL 3.3 or above (OpenGL 4.3 is recommended)
  • Vulkan 1.1 or above (WIP)

Gradle configuration

repositories {
    maven {
        name 'IzzelAliz Maven'
        url 'https://maven.izzel.io/releases/'
    }
}
dependencies {
    implementation "icyllis.modernui:ModernUI-Core:${modernui_core_version}"
    // apply appropriate LWJGL platform here (mandatory)
    // apply other Modern UI modules (optional)
}

Building Modern UI

JDK 21 is preferred. The build command: gradlew build

Modern UI requires Arc 3D codebase to build. Arc 3D is a low-level graphics engine and frequently updated. It won't be published on Maven repository. A snapshot is merged into this repository in /external subdirectory, and all Arc3D classes and sources will be included in ModernUI-Core. You may follow these steps when you want to update it.

// add remote if not
git remote add -f --no-tags arc3d [email protected]:BloCamLimb/Arc3D.git
// fetch if not
git fetch --no-tags arc3d
// delete the old code if any
git rm -rf external/Arc3D
// merge arc3d/master branch
git merge -s ours --no-commit arc3d/master --allow-unrelated-histories
// read the root directory of arc3d/master into 'external/Arc3D'
git read-tree --prefix=external/Arc3D -u arc3d/master:
git commit

Note: You must not make any local changes to /external.

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.