Pengunjung yang terhormat,
repositori ini, pelacak masalah, dll. ditinggalkan demi https://github.com/Immediate-Mode-UI/Nuklear . Aktivitas apa pun di pelacak masalah ini, permintaan penarikan apa pun, dll. akan diabaikan.
Menantikan kabar dari Anda di https://github.com/Immediate-Mode-UI/Nuklear
Komunitas nuklir
Ini adalah perangkat antarmuka pengguna grafis mode langsung keadaan minimal yang ditulis dalam ANSI C dan dilisensikan di bawah domain publik. Ini dirancang sebagai antarmuka pengguna sederhana yang dapat disematkan untuk aplikasi dan tidak memiliki ketergantungan apa pun, backend render default atau jendela OS dan penanganan input tetapi menyediakan pendekatan perpustakaan yang sangat modular dengan menggunakan status input sederhana untuk perintah input dan gambar yang menggambarkan bentuk primitif sebagai keluaran. Jadi, alih-alih menyediakan pustaka berlapis yang mencoba mengabstraksi sejumlah platform dan merender backend, pustaka tersebut hanya berfokus pada UI sebenarnya.
Pustaka ini terdapat dalam satu file header tunggal dan dapat digunakan baik dalam mode header saja atau dalam mode implementasi. Mode hanya header digunakan secara default saat disertakan dan memungkinkan penyertaan header ini di header lain dan tidak berisi implementasi sebenarnya.
Mode implementasi perlu mendefinisikan makro praprosesor NK_IMPLEMENTATION
dalam satu file .c/.cpp sebelum #include
memasukkan file ini, misalnya:
#define NK_IMPLEMENTATION
#include "nuklear.h"
PENTING: Setiap kali Anda memasukkan "nuklear.h" Anda harus mendefinisikan flag opsional yang sama. Hal ini sangat penting untuk tidak melakukan hal ini yang menyebabkan kesalahan kompiler atau bahkan kerusakan tumpukan yang lebih buruk.
/* init gui state */
struct nk_context ctx ;
nk_init_fixed ( & ctx , calloc ( 1 , MAX_MEMORY ), MAX_MEMORY , & font );
enum { EASY , HARD };
static int op = EASY ;
static float value = 0.6f ;
static int i = 20 ;
if ( nk_begin ( & ctx , "Show" , nk_rect ( 50 , 50 , 220 , 220 ),
NK_WINDOW_BORDER | NK_WINDOW_MOVABLE | NK_WINDOW_CLOSABLE )) {
/* fixed widget pixel width */
nk_layout_row_static ( & ctx , 30 , 80 , 1 );
if ( nk_button_label ( & ctx , "button" )) {
/* event handling */
}
/* fixed widget window ratio width */
nk_layout_row_dynamic ( & ctx , 30 , 2 );
if ( nk_option_label ( & ctx , "easy" , op == EASY )) op = EASY ;
if ( nk_option_label ( & ctx , "hard" , op == HARD )) op = HARD ;
/* custom widget pixel width */
nk_layout_row_begin ( & ctx , NK_STATIC , 30 , 2 );
{
nk_layout_row_push ( & ctx , 50 );
nk_label ( & ctx , "Volume:" , NK_TEXT_LEFT );
nk_layout_row_push ( & ctx , 110 );
nk_slider_float ( & ctx , 0 , & value , 1.0f , 0.1f );
}
nk_layout_row_end ( & ctx );
}
nk_end ( & ctx );
Ada sejumlah pengikatan nuklear untuk bahasa berbeda yang dibuat oleh penulis lain. Saya tidak dapat membuktikan kualitasnya karena saya belum tentu mahir dalam salah satu bahasa tersebut. Selain itu, tidak ada jaminan bahwa semua pengikatan akan selalu diperbarui:
Dikembangkan oleh Micha Mettke dan setiap kontributor langsung atau tidak langsung ke GitHub.
Menyematkan stb_texedit
, stb_truetype
dan stb_rectpack
oleh Sean Barrett (domain publik) Menyematkan font ProggyClean.ttf
oleh Tristan Grimmer (lisensi MIT).
Terima kasih yang sebesar-besarnya kepada Omar Cornut (ocornut@github) atas perpustakaan imgui-nya dan memberi saya inspirasi untuk perpustakaan ini, Casey Muratori atas pahlawan buatan tangan dan ide antarmuka pengguna grafis mode langsung aslinya dan Sean Barrett atas perpustakaan header tunggalnya yang luar biasa yang memulihkan perpustakaan saya kepercayaan pada perpustakaan dan membawa saya untuk membuat perpustakaan saya sendiri. Akhirnya Apoorva Joshi untuk pengemas file singe-headernya.
------------------------------------------------------------------------------
This software is available under 2 licenses -- choose whichever you prefer.
------------------------------------------------------------------------------
ALTERNATIVE A - MIT License
Copyright (c) 2017 Micha Mettke
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
------------------------------------------------------------------------------
ALTERNATIVE B - Public Domain (www.unlicense.org)
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
software, either in source code form or as a compiled binary, for any purpose,
commercial or non-commercial, and by any means.
In jurisdictions that recognize copyright laws, the author or authors of this
software dedicate any and all copyright interest in the software to the public
domain. We make this dedication for the benefit of the public at large and to
the detriment of our heirs and successors. We intend this dedication to be an
overt act of relinquishment in perpetuity of all present and future rights to
this software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-----------------------------------------------------------------------------