- Статус
 - Оффлайн
 
- Регистрация
 - 10 Окт 2020
 
- Сообщения
 - 536
 
- Реакции
 - 511
 
привет @skvizxcc, немного по поводу кода
		
		
	
	
		
	
1 - попытайся избегать подобных магических чисел и странных калькуляций в коде. создавай переменную и нейми её тем, за что она отвечает, при подобном подходе юзеру твоего сурса будет в десятки раз проще разобраться и использоваться / портировать твои исходники.
по поводу константы "200", лучше делай как-то так:
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
функция "renderer_tab" сама по себе немного странная, тебе нет смысла выполнять подобные мувы
		
	
если ты можешь передавать айдишник таба прямо в функцию, а саму переменную tab передавать как объект (по ссылке), и изменять её прямо из-под функции.
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
		
	
хоть чуть-чуть, да лучше же стало, согласен?
				
			1 - попытайся избегать подобных магических чисел и странных калькуляций в коде. создавай переменную и нейми её тем, за что она отвечает, при подобном подходе юзеру твоего сурса будет в десятки раз проще разобраться и использоваться / портировать твои исходники.
по поводу константы "200", лучше делай как-то так:
			
				C++:
			
		
		
		constexpr float x_spacing = 200;
	функция "renderer_tab" сама по себе немного странная, тебе нет смысла выполнять подобные мувы
если ты можешь передавать айдишник таба прямо в функцию, а саму переменную tab передавать как объект (по ссылке), и изменять её прямо из-под функции.
			
				C++:
			
		
		
		bool ImGui::render_tab(const char* icon, const char* name, int tab_id, int& tab_variable)
{
    ImGuiWindow* window = ImGui::GetCurrentWindow();
    if (window->SkipItems)
        return false;
    ImDrawList* draw = window->DrawList;
    const ImGuiID id = window->GetID(name);
    const bool is_selected = tab_id == tab_variable;
    const ImVec2 pos = window->DC.CursorPos;
    const ImVec2 size = { 140, 38 };
    const ImRect bb(pos, pos + size);
    ImGui::ItemSize(size, 0);
    if (!ImGui::ItemAdd(bb, id))
        return false;
    bool hovered, held;
    bool pressed = ImGui::ButtonBehavior(bb, id, &hovered, &held, NULL);
    if (pressed) {
        tab_variable = tab_id;
    }
    //if (hovered || held)
    //    ImGui::SetMouseCursor(9);  Useless
    if (is_selected)
        draw->AddRectFilled(ImVec2(bb.Min.x, bb.Min.y), ImVec2(bb.Min.x + 130, bb.Min.y + 36 - 7), ImColor(25, 24, 25), 5);
    ImGui::PushFont(opt.InterMedium);
    draw->AddText(ImVec2(bb.Min.x + 10 + 26, bb.Min.y + 12 - 6), is_selected ? ImColor(255, 255, 255) : ImColor(135, 133, 135), name);
    ImGui::PopFont();
    ImGui::PushFont(opt.IconFont);
    draw->AddText(ImVec2(bb.Min.x + 10, bb.Min.y + 9 - 6 + 2), is_selected ? ImColor(255, 255, 255) : ImColor(135, 133, 135), icon);
    ImGui::PopFont();
    return pressed;
}
	хоть чуть-чуть, да лучше же стало, согласен?