So you’re gonna have something like this for efficient control, yes?
(which is an 8x8 triLED matrix with another 8x4 added to the side)
So you have one shift register on the side pulling the cathodes low while 5 along the top drive the anodes high.
You shift out the 5 on top to set up the anodes, then pulse the first row low to make the selected LEDs flash.
Shift out the set of anodes, pulse row 2 low.
Shift out anodes, pulse row 3 low.
For the cathodes, you wouldn’t even need a shift out - just clock out a 0, turn the output enable on/off.
Shift the anodes, 1 cathode clock to move the 0 along, pulse the OE.
I would put current limit resistors on the the anode pins, and use a hefty current sinking part on the cathode pins if you plan to drive lots of anodes at the same time.
If instead you plan to only drive 1 anode at a time (or not for it to be off), then a different approach would work - you shift a 1 across with PWM say and hold the cathode low while you work the anodes on across the row.
This would work well for driving 1 device together:
have all the Reds go out of two devices (one for 8, one for the 2nd 4), same for Blue, same for Green - then you drive 3 anodes with PWM for varying color intensity, go to the next, go to the next, working across the row.
Still need decent cathode current sink as you would have 3 LEDs on at once, say 60mA of current worst case.
Please fill us in more on your application, maybe you want more brightness, or just steady on all the time, and multipexing isn’t really the way to go.