Skip to content

Conversation

@gheskett
Copy link
Collaborator

This function is more stable and can handle more use cases than render_multi_image() could. It can handle fractional scaling and also doesn't suffer from the seams that ParaLLEl displays when upscaling texrects.

It does have some minor drawbacks though, mainly that it doesn't handle the complete displaylist for the user (mainly to allow customization of primitives outside of the function). It also isn't currently as optimized as render_multi_image() was for combiner and render modes (though these can also still be handled manually outside of the function).

Neither function supports rendering of CI textures still.

@gheskett gheskett added this to the 2.4 milestone Nov 11, 2025
@gheskett gheskett requested a review from someone2639 November 11, 2025 23:54
@gheskett gheskett added the enhancement New feature or request label Nov 11, 2025
@gheskett gheskett force-pushed the draw-sprite branch 2 times, most recently from db93674 to dbcf802 Compare November 12, 2025 00:16
This function is more stable and can handle more use cases than render_multi_image() could. It can handle fractional scaling and also doesn't suffer from the seams that ParaLLEl displays when upscaling texrects.

It does have some minor drawbacks though, mainly that it doesn't handle the complete displaylist for the user (mainly to allow customization of primitives outside of the function). It also isn't currently as optimized as render_multi_image() was for combiner and render modes (though these can also still be handled manually outside of the function).

Neither function supports rendering of CI textures still.
Copy link
Collaborator

@aglab2 aglab2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works really well but I believe it is a good idea to add an example how to setup basic rendering. For example

gDPPipeSync        (dlHead++);
gDPSetTexturePersp (dlHead++, G_TP_NONE);
gDPSetCombineMode  (dlHead++, G_CC_FADEA, G_CC_FADEA);
gDPSetTextureFilter(dlHead++, G_TF_POINT);
gDPSetCycleType    (dlHead++, G_CYC_1CYCLE);
gDPSetRenderMode   (dlHead++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
gDPSetEnvColor     (dlHead++, 255, 255, 255, alpha);

draw_sprite(&dlHead, ...);

gDPPipeSync(dlHead++);
gDPSetTexturePersp(dlHead++ , G_TP_PERSP);
gDPSetCombineMode(dlHead++  , G_CC_SHADE, G_CC_SHADE);
gDPSetTextureFilter(dlHead++, G_TF_BILERP);
gSPEndDisplayList(dlHead++);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: Needs Review

Development

Successfully merging this pull request may close these issues.

3 participants