Noticias:

SMF - Just Installed!

Menú principal

Source takumi12 - Imagen Circular

Publicado por Dakosmu, Mayo 07, 2023, 07:21 AM

Tema anterior - Siguiente tema

Dakosmu

Source takumi12 - Imagen Circular

bueno esto habia dicho que no lo iba a compartir nunca, pero ya todos lo tienen gracias a las personas a las que le comparti ciertas cosas, y al final como siempre las terminan compartiendo hasta con su madre, esto ya no es novedad y es algo que esta al alcance de muchos, los unicos que lo teniamos era louis y yo, y eso era algo muy pro en su momento, porque es algo que muchos quisieron hacer y se quedaron atascados... saludos nemesis por si miras este post. aqui les dejo las capturas de como se mira una imagen con el vortice redondo. espero que les ayude.

Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión

Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión



Codigo
#define    Q_PI                                        3.14159265358979323846f
#define ConvertX                            ((float(__cdecl*)(float x)) 0x00636420)
#define Converty                            ((float(__cdecl*)(float y)) 0x00636450)
#define WindowWidth                                    *(GLsizei*)0x00E61E58
#define WindowHeight                                *(GLsizei*)0x00E61E5C
#define BindTexture                                    ((bool(__cdecl*)(int a1)) 0x00635CF0)

GLvoid CRenderBitmapCircle(int Texture,float x,float y,float Radius ,float u,float v,float uWidth,float vHeight,bool Scale,bool StartScale,float Alpha)
{
    GLuint vertexcount; // ST1C_4@5
    float var_radius2; // ST1C_4@5
    GLfloat var_angle; // ST1C_4@5
    GLfloat TextureCoord[2]; // [sp+2Ch] [bp-40h]@5
    GLfloat VertexCoord[4]; // [sp+4Ch] [bp-20h]@5
   
    x = x + Radius;
    y = y + Radius;

    if ( Scale )
    {
        x = ConvertX( x );
        y = ConvertY( y );
    }

    if ( StartScale )
    {
        var_radius2 = ConvertY( Radius );
        Radius = ConvertX( Radius );
    }

    y = (double)(unsigned int)WindowHeight - y;

    vertexcount = 20;
    var_angle = 2.0 * Q_PI / vertexcount;

    BindTexture( Texture );

    glBegin( GL_TRIANGLE_FAN );

    if ( Alpha > 0.0 )
        glColor4f(1.0, 1.0, 1.0, Alpha);
    TextureCoord[0] = u;
    TextureCoord[1] = v;
    glTexCoord2fv(TextureCoord);
    //--
    VertexCoord[0] = x;
    VertexCoord[1] = y;
    VertexCoord[2] = 0.0;
    VertexCoord[3] = 1.0;
    glVertex4fv(VertexCoord);

    for(int i = 0; i < vertexcount ; i++)
    {
        TextureCoord[0] = (std::cos(var_angle * i) * uWidth) + u;
        TextureCoord[1] = (std::sin(var_angle * i) * vHeight) + v;
        glTexCoord2fv(TextureCoord);
        VertexCoord[0] = (std::cos(var_angle * i) * Radius) + x;
        VertexCoord[1] = (std::sin(var_angle * i) * -var_radius2) + y;
        VertexCoord[2] = 0.0;
        VertexCoord[3] = 1.0;
        glVertex4fv(VertexCoord);
    }
    //--
    TextureCoord[0] = uWidth + u;
    TextureCoord[1] = v;
    glTexCoord2fv(TextureCoord);

    VertexCoord[0] = Radius + x;
    VertexCoord[1] = y;
    VertexCoord[2] = 0.0;
    VertexCoord[3] = 1.0;
    glVertex4fv(VertexCoord);

    if ( Alpha > 0.0 )
        glColor4f(1.0, 1.0, 1.0, 1.0);

    glEnd();
}
Bon Dia

🡱 🡳