cached card rendering and made it so it only renders at various 'native' sizes and uses gl scaling to scale to other sizes