OldSchool Library
Basic documentation
This section provides basic guidance on drawing textured and untextured objects, assuming some familiarity with GU (Graphics Utility).

Here's a basic example of drawing a textured object and an untextured object:

\code
void drawSomethingTextured(OSL_IMAGE *img) {
        // Define the vertices for your shape. Sprites use 2 vertices, triangles use 3, and quads use 4.
        VERTEX_TYPE *vertices;

        // Set the provided image as the current texture
        oslSetTexture(img);

        // Allocate memory for the vertices
        vertices = (VERTEX_TYPE*)sceGuGetMemory(NUMBER_OF_VERTICES * sizeof(vertices[0]));

        // Initialize the vertex data
        vertices[0].something = ...;
        // [Additional vertex data setup]

        // Draw the array of vertices using GU (Graphics Utility)
        sceGuDrawArray(PRIMITIVETYPE, VERTEX_DESCRIPTION | GU_TRANSFORM_2D, NUMBER_OF_VERTICES, 0, vertices);
}

void drawSomethingUntextured(OSL_IMAGE *img) {
        // Define the vertices for your shape. Sprites use 2 vertices, triangles use 3, and quads use 4.
        VERTEX_TYPE *vertices;

        // Disable texturing
        oslDisableTexturing();

        // Allocate memory for the vertices
        vertices = (VERTEX_TYPE*)sceGuGetMemory(NUMBER_OF_VERTICES * sizeof(vertices[0]));

        // Initialize the vertex data
        vertices[0].something = ...;
        // [Additional vertex data setup]

        // Draw the array of vertices using GU
        sceGuDrawArray(PRIMITIVETYPE, VERTEX_DESCRIPTION | GU_TRANSFORM_2D, NUMBER_OF_VERTICES, 0, vertices);
}
\endcode

As you can see, drawing with GU is straightforward if you are familiar with it. For those new to GU, it is recommended to review tutorials and examples available on ps2dev.org for a deeper understanding.