친애하는 방문객 여러분,
이 저장소, 이슈 추적기 등은 https://github.com/Immediate-Mode-UI/Nuklear를 위해 폐기되었습니다. 이 이슈 트래커의 모든 활동, 풀 요청 등은 무시됩니다.
https://github.com/Immediate-Mode-UI/Nuklear에서 여러분의 의견을 기다리겠습니다.
핵 커뮤니티
이것은 ANSI C로 작성되고 공개 도메인에 따라 라이센스가 부여된 최소 상태 즉시 모드 그래픽 사용자 인터페이스 툴킷입니다. 이는 애플리케이션을 위한 간단한 내장형 사용자 인터페이스로 설계되었으며 종속성, 기본 렌더 백엔드 또는 OS 창 및 입력 처리가 없지만 대신 기본 모양을 설명하는 입력 및 그리기 명령에 대해 간단한 입력 상태를 사용하여 매우 모듈식 라이브러리 접근 방식을 제공합니다. 산출. 따라서 여러 플랫폼을 추상화하고 백엔드를 렌더링하는 계층화된 라이브러리를 제공하는 대신 실제 UI에만 중점을 둡니다.
이 라이브러리는 하나의 단일 헤더 파일에 자체적으로 포함되어 있으며 헤더 전용 모드 또는 구현 모드에서 사용할 수 있습니다. 헤더 전용 모드는 포함될 때 기본적으로 사용되며 이 헤더를 다른 헤더에 포함하는 것을 허용하고 실제 구현을 포함하지 않습니다.
구현 모드에서는 이 파일을 #include
하기 전에 하나의 .c/.cpp 파일에 전처리기 매크로 NK_IMPLEMENTATION
정의해야 합니다. 예:
#define NK_IMPLEMENTATION
#include "nuklear.h"
중요: "nuklear.h"를 포함할 때마다 동일한 선택적 플래그를 정의해야 합니다. 이를 수행하지 않으면 컴파일러 오류가 발생하거나 더 심각한 스택 손상이 발생하는 것이 매우 중요합니다.
/* 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 );
다른 저자가 만든 다양한 언어에 대한 여러 가지 핵클리어 바인딩이 있습니다. 나는 이들 언어 중 어느 하나에도 능숙하지 않기 때문에 품질을 테스트할 수 없습니다. 또한 모든 바인딩이 항상 최신 상태로 유지된다는 보장도 없습니다.
Micha Mettke와 GitHub의 모든 직간접 기여자가 개발했습니다.
Sean Barrett(공개 도메인)의 stb_texedit
, stb_truetype
및 stb_rectpack
포함합니다. Tristan Grimmer(MIT 라이센스)의 ProggyClean.ttf
글꼴을 포함합니다.
imgui 라이브러리를 제공하고 이 라이브러리에 영감을 준 Omar Cornut(ocornut@github)에게 큰 감사를 드립니다. 수제 영웅과 독창적인 즉시 모드 그래픽 사용자 인터페이스 아이디어를 제공한 Casey Muratori, 그리고 제 놀라운 단일 헤더 라이브러리를 복원한 Sean Barrett에게 감사드립니다. 도서관에 대한 믿음을 갖게 되었고 나만의 것을 만들게 되었습니다. 마지막으로 단일 헤더 파일 패커를 위한 Apoorva Joshi입니다.
------------------------------------------------------------------------------
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.
-----------------------------------------------------------------------------