def batch_draw(csl): glPushMatrix() glLoadIdentity() vertices = [] for cs in csl: ax, ay = cs.abs_coords() if cs.ft_anim: qs = cs.question_scale bs = cs.back_scale aa = cs.ftanim_alpha ca = cs.ftanim_cardalpha if cs.gray: c = (.66, .66, .66, ca) else: c = (1., 1., 1., ca) vertices += cs.img.get_t2c4n3v3_vertices(c, ax, ay) n, s = cs.number, cs.suit if n: vertices += game_res.cardnum[s % 2 * 13 + n - 1].get_t2c4n3v3_vertices(c, ax + 5, ay + 105) if s: vertices += game_res.suit[s - 1].get_t2c4n3v3_vertices(c, ax + 6, ay + 94) c = (1, 1, 1, aa) if qs: vertices += game_res.card_question.get_t2c4n3v3_vertices(c, ax+(1-qs)*45, ay, 0, qs*91) if bs: vertices += game_res.card_hidden.get_t2c4n3v3_vertices(c, ax+(1-bs)*45, ay, 0, bs*91) else: a = cs.alpha if cs.gray: c = (.66, .66, .66, a) else: c = (1., 1., 1., a) vertices += cs.img.get_t2c4n3v3_vertices(c, ax, ay) resides_in = cs.card.resides_in if resides_in and resides_in.type == 'showncards': vertices += game_res.card_showncardtag.get_t2c4n3v3_vertices(c, ax, ay) n, s = cs.number, cs.suit if n: vertices += game_res.cardnum[s % 2 * 13 + n - 1].get_t2c4n3v3_vertices(c, ax + 5, ay + 105) if s: vertices += game_res.suit[s-1].get_t2c4n3v3_vertices(c, ax+6, ay+94) vertices += game_res.card_shinesoft.get_t2c4n3v3_vertices( (1., 1., 1., cs.shine_alpha), ax-6, ay-6 ) if vertices: n = len(vertices) buf = (GLfloat*n)() buf[:] = vertices glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT) glInterleavedArrays(GL_T2F_C4F_N3F_V3F, 0, buf) with get_atlas('card').texture: glDrawArrays(GL_QUADS, 0, n/12) glPopClientAttrib() glPopMatrix()
def batch_draw(csl): glPushMatrix() glLoadIdentity() vertices = [] for cs in csl: ax, ay = cs.abs_coords() vertices += cs.img.get_t4f_v4f_vertices(ax, ay) s = cs.card.suit n = cs.card.number ssuit = game_res.smallsuit snum = game_res.smallnum if n == 10: # special case # g[0].blit(1+g[0].vertices[0], 33+g[0].vertices[1]) # g[1].blit(5+g[1].vertices[0], 33+g[1].vertices[1]) vertices += snum[s % 2 * 14 + 10].get_t4f_v4f_vertices( ax - 1, ay + 31) vertices += snum[s % 2 * 14 + 0].get_t4f_v4f_vertices( ax + 3, ay + 31) else: vertices += snum[s % 2 * 14 + n].get_t4f_v4f_vertices( ax + 1, ay + 31) vertices += ssuit[s - 1].get_t4f_v4f_vertices(ax + 1, ay + 22) if cs.selected: vertices += game_res.scardframe_selected.get_t4f_v4f_vertices( ax, ay) else: vertices += game_res.scardframe_normal.get_t4f_v4f_vertices( ax, ay) n = len(vertices) buf = (GLfloat * n)() buf[:] = vertices glColor3f(1., 1., 1.) glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT) glInterleavedArrays(GL_T4F_V4F, 0, buf) with get_atlas('card').texture: glDrawArrays(GL_QUADS, 0, n / 8) glPopClientAttrib() glPopMatrix()
def batch_draw(csl): glPushMatrix() glLoadIdentity() vertices = [] for cs in csl: ax, ay = cs.abs_coords() vertices += cs.img.get_t4f_v4f_vertices(ax, ay) s = cs.card.suit n = cs.card.number ssuit = game_res.smallsuit snum = game_res.smallnum if n == 10: # special case # g[0].blit(1+g[0].vertices[0], 33+g[0].vertices[1]) # g[1].blit(5+g[1].vertices[0], 33+g[1].vertices[1]) vertices += snum[s % 2 * 14 + 10].get_t4f_v4f_vertices(ax - 1, ay + 31) vertices += snum[s % 2 * 14 + 0].get_t4f_v4f_vertices(ax + 3, ay + 31) else: vertices += snum[s % 2 * 14 + n].get_t4f_v4f_vertices(ax + 1, ay + 31) vertices += ssuit[s - 1].get_t4f_v4f_vertices(ax + 1, ay + 22) if cs.selected: vertices += game_res.scardframe_selected.get_t4f_v4f_vertices(ax, ay) else: vertices += game_res.scardframe_normal.get_t4f_v4f_vertices(ax, ay) n = len(vertices) buf = (GLfloat*n)() buf[:] = vertices glColor3f(1., 1., 1.) glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT) glInterleavedArrays(GL_T4F_V4F, 0, buf) with get_atlas('card').texture: glDrawArrays(GL_QUADS, 0, n/8) glPopClientAttrib() glPopMatrix()
def batch_draw(csl): glPushMatrix() glLoadIdentity() vertices = [] for cs in csl: ax, ay = cs.abs_coords() if cs.ft_anim: qs = cs.question_scale bs = cs.back_scale aa = cs.ftanim_alpha ca = cs.ftanim_cardalpha if cs.gray: c = (.66, .66, .66, ca) else: c = (1., 1., 1., ca) vertices += cs.img.get_t2c4n3v3_vertices(c, ax, ay) n, s = cs.number, cs.suit if n: vertices += game_res.cardnum[s % 2 * 13 + n - 1].get_t2c4n3v3_vertices( c, ax + 5, ay + 105) if s: vertices += game_res.suit[s - 1].get_t2c4n3v3_vertices( c, ax + 6, ay + 94) c = (1, 1, 1, aa) if qs: vertices += game_res.card_question.get_t2c4n3v3_vertices( c, ax + (1 - qs) * 45, ay, 0, qs * 91) if bs: vertices += game_res.card_hidden.get_t2c4n3v3_vertices( c, ax + (1 - bs) * 45, ay, 0, bs * 91) else: a = cs.alpha if cs.gray: c = (.66, .66, .66, a) else: c = (1., 1., 1., a) vertices += cs.img.get_t2c4n3v3_vertices(c, ax, ay) resides_in = cs.card.resides_in if resides_in and resides_in.type == 'showncards': vertices += game_res.card_showncardtag.get_t2c4n3v3_vertices( c, ax, ay) n, s = cs.number, cs.suit if n: vertices += game_res.cardnum[s % 2 * 13 + n - 1].get_t2c4n3v3_vertices( c, ax + 5, ay + 105) if s: vertices += game_res.suit[s - 1].get_t2c4n3v3_vertices( c, ax + 6, ay + 94) vertices += game_res.card_shinesoft.get_t2c4n3v3_vertices( (1., 1., 1., cs.shine_alpha), ax - 6, ay - 6) if vertices: n = len(vertices) buf = (GLfloat * n)() buf[:] = vertices glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT) glInterleavedArrays(GL_T2F_C4F_N3F_V3F, 0, buf) with get_atlas('card').texture: glDrawArrays(GL_QUADS, 0, n / 12) glPopClientAttrib() glPopMatrix()