Open VigneshGunasekaran96 opened 5 years ago
I am using the glfw-opengl4 demo to draw. I don't get any compile errors. But the windows are not drawing properly. Here is the Image
Code:
ImGuiLayer.h
#pragma once #define NK_GLFW_GL4_IMPLEMENTATION #define NK_UINT_DRAW_INDEX #define NK_INCLUDE_FIXED_TYPES #define NK_INCLUDE_STANDARD_IO #define NK_INCLUDE_STANDARD_VARARGS #define NK_INCLUDE_DEFAULT_ALLOCATOR #define NK_INCLUDE_VERTEX_BUFFER_OUTPUT #define NK_INCLUDE_FONT_BAKING #define NK_INCLUDE_DEFAULT_FONT #define NK_KEYSTATE_BASED_INPUT #include "Atlas/Layer.h" struct nk_context; struct nk_image; namespace atlas { class CImGuiLayer : public CLayer { private: ... nk_context* ctx; struct nk_image* img; }; }
ImGuiLayer.cpp #include "atpch.h" #include "ImGuiLayer.h"
ImGuiLayer.cpp
#include "atpch.h" #include "ImGuiLayer.h"
...
... void CImGuiLayer::OnAttach( ) { GLFWwindow* window = static_cast<GLFWwindow*>( m_Window->GetNativeWindow( ) ); ctx = nk_glfw3_init( window, NK_GLFW3_INSTALL_CALLBACKS, MAX_VERTEX_BUFFER, MAX_ELEMENT_BUFFER ); struct nk_font_atlas* atlas; nk_glfw3_font_stash_begin( &atlas ); nk_glfw3_font_stash_end( ); int tex_index = 0; enum { tex_width = 256, tex_height = 256 }; char pixels[ tex_width * tex_height * 4 ]; memset( pixels, 128, sizeof( pixels ) ); tex_index = nk_glfw3_create_texture( pixels, tex_width, tex_height ); auto _img = nk_image_id( tex_index ); img = new struct nk_image( ); img->handle = _img.handle; img->w = _img.w; img->h = _img.h; for (size_t i = 0; i < 4; ++i) img->region[ i ] = _img.region[ i ]; } void CImGuiLayer::OnDetach( ) { delete img; nk_glfw3_shutdown( ); }
CImGuiLayer::OnRender( double_t alphaTime, double_t deltaTime ) { nk_glfw3_new_frame( );
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 == ( int) EASY )) op = EASY; if (nk_option_label( ctx, "hard", op == ( int) 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 ); /* Bindless Texture */ if (nk_begin( ctx, "Texture", nk_rect( 250, 150, 230, 250 ), NK_WINDOW_BORDER | NK_WINDOW_MOVABLE | NK_WINDOW_SCALABLE | NK_WINDOW_MINIMIZABLE | NK_WINDOW_TITLE )) { struct nk_command_buffer* canvas = nk_window_get_canvas( ctx ); struct nk_rect total_space = nk_window_get_content_region( ctx ); nk_draw_image( canvas, total_space, img, nk_white ); } nk_end( ctx ); nk_glfw3_render( NK_ANTI_ALIASING_ON ); }
Prueba la versión glfw_opengl3 y glfw_opengl4 oficial en la carpeta demo y escriba los resultados.
I am using the glfw-opengl4 demo to draw. I don't get any compile errors. But the windows are not drawing properly. Here is the Image
Code:
...
include "GLFW/glfw3.h"
include "glad/glad.h"
include "nuklear.h"
include "demo/glfw_opengl4/nuklear_glfw_gl4.h"
define MAX_VERTEX_BUFFER 512 * 1024
define MAX_ELEMENT_BUFFER 128 * 1024
CImGuiLayer::OnRender( double_t alphaTime, double_t deltaTime ) { nk_glfw3_new_frame( );