Исходник Селфкод RenderUtility2

Начинающий
Статус
Оффлайн
Регистрация
31 Июл 2022
Сообщения
409
Реакции[?]
17
Поинты[?]
22K
Expensive Client
Пользователь
Статус
Оффлайн
Регистрация
12 Ноя 2022
Сообщения
145
Реакции[?]
40
Поинты[?]
40K
Начинающий
Статус
Оффлайн
Регистрация
26 Авг 2023
Сообщения
318
Реакции[?]
24
Поинты[?]
23K
для ксго подойдет?
не, для валоранта и доты самое то
сливаю свой селфкод RenderUtility2 для вас пастеров если что нужен proekt-lobok (писал +- 20 минут но пастерам сойдет)
p.s. спс за помощь metafaze

Посмотреть вложение 265755

пример использования:
RenderUtility2.drawRectangle(50, 50, 50, 50, ColorUtility3.rgb(255, 0, 255));
код:
Utility1.java:
package ваша.паста.utils;

import net.minecraft.client.Minecraft;

public abstract class Utility1 {
    public static final Minecraft mc = Minecraft.getInstance();
}
RenderUtility2.java:
package ваша.паста.utils;

import lombok.experimental.UtilityClass;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;

import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.opengl.GL14.glBlendFuncSeparate;

@UtilityClass
public class RenderUtility2 extends Utility1 {

    private final Tessellator tessellator = Tessellator.getInstance();
    private final BufferBuilder buffer = tessellator.getBuffer();

    public void drawRectangle(float x, float y, float width, float height, int color) {
        int red = color >> 16 & 0xFF;
        int green = color >> 8 & 0xFF;
        int blue = color & 0xFF;
        int alpha = color >> 24 & 0xFF;
        boolean blend = glIsEnabled(GL_BLEND);
        glEnable(GL_BLEND);
        glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO);
        glDisable(GL_TEXTURE_2D);
        buffer.begin(GL_QUADS, DefaultVertexFormats.POSITION_COLOR);
        buffer.pos(x + width, y, 0).color(red, green, blue, alpha).endVertex();
        buffer.pos(x, y, 0).color(red, green, blue, alpha).endVertex();
        buffer.pos(x, y + height, 0).color(red, green, blue, alpha).endVertex();
        buffer.pos(x + width, y + height, 0).color(red, green, blue, alpha).endVertex();
        tessellator.draw();
        glEnable(GL_TEXTURE_2D);
        if (blend)
            glEnable(GL_BLEND);
        else glDisable(GL_BLEND);
    }

}
ColorUtility3:
package ваша.паста.utils;

import lombok.experimental.UtilityClass;

@UtilityClass
public class ColorUtility3 extends Utility1 {

    public int rgba(int r, int g, int b, int a) {
        return a << 24 | r << 16 | g << 8 | b;
    }

    public int rgba(double r, double g, double b, double a) {
        return rgba((int) r, (int) g, (int) b, (int) a);
    }

    public int rgb(int r, int g, int b) {
        return rgba(r, g, b, 255);
    }

    public int rgb(double r, double g, double b) {
        return rgb((int) r, (int) g, (int) b);
    }

}
а в чем разница от любых других drawrect со слитых клиентов?(я не кодер просто и хз)
 
эксперт в майнкрафт апи
Пользователь
Статус
Оффлайн
Регистрация
8 Сен 2023
Сообщения
255
Реакции[?]
115
Поинты[?]
15K
Forge Api ;-;
Начинающий
Статус
Оффлайн
Регистрация
3 Май 2023
Сообщения
767
Реакции[?]
18
Поинты[?]
13K
просто смирись что ты такое не осилишь ибо ты знаешь minecraft-graphics
тип просто объясни, нахуя это выкладывать если уже на форуме как 150 лет лежат утилки которые в 10 раз лучше
+блять твоя утилка с 1 ебучим "оптимизированным" ректом нахуй кому нужна
 
(◣_◢)
Участник
Статус
Оффлайн
Регистрация
1 Фев 2021
Сообщения
447
Реакции[?]
152
Поинты[?]
71K
тип просто объясни, нахуя это выкладывать если уже на форуме как 150 лет лежат утилки которые в 10 раз лучше
+блять твоя утилка с 1 ебучим "оптимизированным" ректом нахуй кому нужна
НЕ СКУЛИ ПАСТАР)
 
Forge Api ;-;
Начинающий
Статус
Оффлайн
Регистрация
3 Май 2023
Сообщения
767
Реакции[?]
18
Поинты[?]
13K
Начинающий
Статус
Оффлайн
Регистрация
1 Ноя 2023
Сообщения
55
Реакции[?]
3
Поинты[?]
1K
это самый оптимизированный потому что все остальные пастеры по типу ak1 и не могут норм сделать
Убери отдельные переменные для каждого цвета, это немного уменьшить количество используемой памяти.
 
(◣_◢)
Участник
Статус
Оффлайн
Регистрация
1 Фев 2021
Сообщения
447
Реакции[?]
152
Поинты[?]
71K
Forge Api ;-;
Начинающий
Статус
Оффлайн
Регистрация
3 Май 2023
Сообщения
767
Реакции[?]
18
Поинты[?]
13K
Начинающий
Статус
Оффлайн
Регистрация
31 Июл 2022
Сообщения
409
Реакции[?]
17
Поинты[?]
22K
тип просто объясни, нахуя это выкладывать если уже на форуме как 150 лет лежат утилки которые в 10 раз лучше
+блять твоя утилка с 1 ебучим "оптимизированным" ректом нахуй кому нужна
Боже чел что ты говоришь, этот божественный селфкод прокачает визуалы любого софта на 200%
 
Forge Api ;-;
Начинающий
Статус
Оффлайн
Регистрация
3 Май 2023
Сообщения
767
Реакции[?]
18
Поинты[?]
13K
(◣_◢)
Участник
Статус
Оффлайн
Регистрация
1 Фев 2021
Сообщения
447
Реакции[?]
152
Поинты[?]
71K
сливаю свой селфкод RenderUtility2 для вас пастеров если что нужен proekt-lobok (писал +- 20 минут но пастерам сойдет)
p.s. спс за помощь metafaze

Посмотреть вложение 265755

пример использования:
RenderUtility2.drawRectangle(50, 50, 50, 50, ColorUtility3.rgb(255, 0, 255));
код:
Utility1.java:
package ваша.паста.utils;

import net.minecraft.client.Minecraft;

public abstract class Utility1 {
    public static final Minecraft mc = Minecraft.getInstance();
}
RenderUtility2.java:
package ваша.паста.utils;

import lombok.experimental.UtilityClass;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;

import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.opengl.GL14.glBlendFuncSeparate;

@UtilityClass
public class RenderUtility2 extends Utility1 {

    private final Tessellator tessellator = Tessellator.getInstance();
    private final BufferBuilder buffer = tessellator.getBuffer();

    public void drawRectangle(float x, float y, float width, float height, int color) {
        int red = color >> 16 & 0xFF;
        int green = color >> 8 & 0xFF;
        int blue = color & 0xFF;
        int alpha = color >> 24 & 0xFF;
        boolean blend = glIsEnabled(GL_BLEND);
        glEnable(GL_BLEND);
        glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO);
        glDisable(GL_TEXTURE_2D);
        buffer.begin(GL_QUADS, DefaultVertexFormats.POSITION_COLOR);
        buffer.pos(x + width, y, 0).color(red, green, blue, alpha).endVertex();
        buffer.pos(x, y, 0).color(red, green, blue, alpha).endVertex();
        buffer.pos(x, y + height, 0).color(red, green, blue, alpha).endVertex();
        buffer.pos(x + width, y + height, 0).color(red, green, blue, alpha).endVertex();
        tessellator.draw();
        glEnable(GL_TEXTURE_2D);
        if (blend)
            glEnable(GL_BLEND);
        else glDisable(GL_BLEND);
    }

}
ColorUtility3:
package ваша.паста.utils;

import lombok.experimental.UtilityClass;

@UtilityClass
public class ColorUtility3 extends Utility1 {

    public int rgba(int r, int g, int b, int a) {
        return a << 24 | r << 16 | g << 8 | b;
    }

    public int rgba(double r, double g, double b, double a) {
        return rgba((int) r, (int) g, (int) b, (int) a);
    }

    public int rgb(int r, int g, int b) {
        return rgba(r, g, b, 255);
    }

    public int rgb(double r, double g, double b) {
        return rgb((int) r, (int) g, (int) b);
    }

}
а это можно оптимизировать или тут уже максимум?
 
Начинающий
Статус
Оффлайн
Регистрация
1 Ноя 2023
Сообщения
55
Реакции[?]
3
Поинты[?]
1K
Сверху Снизу