@ -539,7 +539,6 @@ void ImGui::ShowTestWindow(bool* p_open)
if ( ImGui : : TreeNode ( " Images " ) )
{
ImGui : : TextWrapped ( " Below we are displaying the font texture (which is the only texture we have access to in this demo). Use the 'ImTextureID' type as storage to pass pointers or identifier to your own texture data. Hover the texture for a zoomed view! " ) ;
ImVec2 tex_screen_pos = ImGui : : GetCursorScreenPos ( ) ;
ImGuiIO & io = ImGui : : GetIO ( ) ;
// Here we are grabbing the font texture because that's the only one we have access to inside the demo code.
@ -549,23 +548,24 @@ void ImGui::ShowTestWindow(bool* p_open)
// If you decided that ImTextureID = MyEngineTexture*, then you can pass your MyEngineTexture* pointers to ImGui::Image(), and gather width/height through your own functions, etc.
// Using ShowMetricsWindow() as a "debugger" to inspect the draw data that are being passed to your render will help you debug issues if you are confused about this.
// Consider using the lower-level ImDrawList::AddImage() API, via ImGui::GetWindowDrawList()->AddImage().
ImTextureID tex_id = io . Fonts - > TexID ;
float tex_w = ( float ) io . Fonts - > TexWidth ;
float tex_h = ( float ) io . Fonts - > TexHeight ;
ImTextureID my_ tex_id = io . Fonts - > TexID ;
float my_ tex_w = ( float ) io . Fonts - > TexWidth ;
float my_ tex_h = ( float ) io . Fonts - > TexHeight ;
ImGui : : Text ( " %.0fx%.0f " , tex_w , tex_h ) ;
ImGui : : Image ( tex_id , ImVec2 ( tex_w , tex_h ) , ImVec2 ( 0 , 0 ) , ImVec2 ( 1 , 1 ) , ImColor ( 255 , 255 , 255 , 255 ) , ImColor ( 255 , 255 , 255 , 128 ) ) ;
ImGui : : Text ( " %.0fx%.0f " , my_tex_w , my_tex_h ) ;
ImVec2 pos = ImGui : : GetCursorScreenPos ( ) ;
ImGui : : Image ( my_tex_id , ImVec2 ( my_tex_w , my_tex_h ) , ImVec2 ( 0 , 0 ) , ImVec2 ( 1 , 1 ) , ImColor ( 255 , 255 , 255 , 255 ) , ImColor ( 255 , 255 , 255 , 128 ) ) ;
if ( ImGui : : IsItemHovered ( ) )
{
ImGui : : BeginTooltip ( ) ;
float focus_sz = 32.0f ;
float focus_x = io . MousePos . x - tex_screen_ pos. x - focus_sz * 0.5f ; if ( focus_x < 0.0f ) focus_x = 0.0f ; else if ( focus_x > tex_w - focus_sz ) focus_x = tex_w - focus_sz ;
float focus_y = io . MousePos . y - tex_screen_ pos. y - focus_sz * 0.5f ; if ( focus_y < 0.0f ) focus_y = 0.0f ; else if ( focus_y > tex_h - focus_sz ) focus_y = tex_h - focus_sz ;
float focus_x = io . MousePos . x - pos . x - focus_sz * 0.5f ; if ( focus_x < 0.0f ) focus_x = 0.0f ; else if ( focus_x > my_ tex_w - focus_sz ) focus_x = my_ tex_w - focus_sz ;
float focus_y = io . MousePos . y - pos . y - focus_sz * 0.5f ; if ( focus_y < 0.0f ) focus_y = 0.0f ; else if ( focus_y > my_ tex_h - focus_sz ) focus_y = my_ tex_h - focus_sz ;
ImGui : : Text ( " Min: (%.2f, %.2f) " , focus_x , focus_y ) ;
ImGui : : Text ( " Max: (%.2f, %.2f) " , focus_x + focus_sz , focus_y + focus_sz ) ;
ImVec2 uv0 = ImVec2 ( ( focus_x ) / tex_w , ( focus_y ) / tex_h ) ;
ImVec2 uv1 = ImVec2 ( ( focus_x + focus_sz ) / tex_w , ( focus_y + focus_sz ) / tex_h ) ;
ImGui : : Image ( tex_id , ImVec2 ( 128 , 128 ) , uv0 , uv1 , ImColor ( 255 , 255 , 255 , 255 ) , ImColor ( 255 , 255 , 255 , 128 ) ) ;
ImVec2 uv0 = ImVec2 ( ( focus_x ) / my_ tex_w, ( focus_y ) / my_ tex_h) ;
ImVec2 uv1 = ImVec2 ( ( focus_x + focus_sz ) / my_ tex_w, ( focus_y + focus_sz ) / my_ tex_h) ;
ImGui : : Image ( my_ tex_id, ImVec2 ( 128 , 128 ) , uv0 , uv1 , ImColor ( 255 , 255 , 255 , 255 ) , ImColor ( 255 , 255 , 255 , 128 ) ) ;
ImGui : : EndTooltip ( ) ;
}
ImGui : : TextWrapped ( " And now some textured buttons.. " ) ;
@ -574,7 +574,7 @@ void ImGui::ShowTestWindow(bool* p_open)
{
ImGui : : PushID ( i ) ;
int frame_padding = - 1 + i ; // -1 = uses default padding
if ( ImGui : : ImageButton ( tex_id , ImVec2 ( 32 , 32 ) , ImVec2 ( 0 , 0 ) , ImVec2 ( 32.0f / tex_w , 32 / tex_h ) , frame_padding , ImColor ( 0 , 0 , 0 , 255 ) ) )
if ( ImGui : : ImageButton ( my_ tex_id, ImVec2 ( 32 , 32 ) , ImVec2 ( 0 , 0 ) , ImVec2 ( 32.0f / my_ tex_w, 32 / my_ tex_h) , frame_padding , ImColor ( 0 , 0 , 0 , 255 ) ) )
pressed_count + = 1 ;
ImGui : : PopID ( ) ;
ImGui : : SameLine ( ) ;