Revision 1.9 by

Revision 1.10 by

… | … | ||
---|---|---|---|

40 | 40 | ||

41 | if (SvTYPE (sv) != SVt_PV) | 41 | if (SvTYPE (sv) != SVt_PV) |

42 | { | 42 | { |

43 | sv_upgrade (sv, SVt_PV); | 43 | sv_upgrade (sv, SVt_PV); |

44 | SvPOK_only (sv); | 44 | SvPOK_only (sv); |

45 | sv_grow (sv, 512); | ||

45 | } | 46 | } |

46 | 47 | ||

47 | return sv; | 48 | return sv; |

48 | } | 49 | } |

49 | 50 | ||

50 | static void | 51 | static void |

51 | rc_v2f (rc_array_t *arr, float x, float y) | 52 | rc_v2f (rc_array_t *arr, float x, float y) |

52 | { | 53 | { |

53 | STRLEN len = SvCUR (arr) + sizeof (float) * 2; | 54 | char *end = fast_sv_grow (arr, sizeof (float) * 2); |

54 | SvGROW (arr, len); | ||

55 | 55 | ||

56 | ((float *)SvEND (arr))[0] = x; | 56 | ((float *)end)[0] = x; |

57 | ((float *)SvEND (arr))[1] = y; | 57 | ((float *)end)[1] = y; |

58 | |||

59 | SvCUR_set (arr, len); | ||

60 | } | 58 | } |

61 | 59 | ||

62 | static void | 60 | static void |

63 | rc_t2f_v3f (rc_array_t *arr, float u, float v, float x, float y, float z) | 61 | rc_t2f_v3f (rc_array_t *arr, float u, float v, float x, float y, float z) |

64 | { | 62 | { |

65 | STRLEN len = SvCUR (arr) + sizeof (float) * 5; | 63 | char *end = fast_sv_grow (arr, sizeof (float) * 5); |

66 | SvGROW (arr, len); | ||

67 | 64 | ||

68 | ((float *)SvEND (arr))[0] = u; | 65 | ((float *)end)[0] = u; |

69 | ((float *)SvEND (arr))[1] = v; | 66 | ((float *)end)[1] = v; |

70 | 67 | ||

71 | ((float *)SvEND (arr))[2] = x; | 68 | ((float *)end)[2] = x; |

72 | ((float *)SvEND (arr))[3] = y; | 69 | ((float *)end)[3] = y; |

73 | ((float *)SvEND (arr))[4] = z; | 70 | ((float *)end)[4] = z; |

74 | |||

75 | SvCUR_set (arr, len); | ||

76 | } | 71 | } |

77 | 72 | ||

78 | static void | 73 | static void |

79 | rc_glyph (rc_array_t *arr, int u, int v, int w, int h, int x, int y) | 74 | rc_glyph (rc_array_t *arr, int u, int v, int w, int h, int x, int y) |

80 | { | 75 | { |

81 | if (w && h) | 76 | if (w && h) |

82 | { | 77 | { |

83 | U8 *c; | 78 | U8 *c = (U8 *)fast_sv_grow (arr, 4 + 4); |

84 | STRLEN len = SvCUR (arr); | ||

85 | SvGROW (arr, len + 2 * 2 + 1 * 4); | ||

86 | c = (U8 *)SvEND (arr); | ||

87 | 79 | ||

88 | x += w; | 80 | x += w; |

89 | y += h; | 81 | y += h; |

90 | 82 | ||

91 | *c++ = u; | 83 | *c++ = u; |

– |
Removed lines |

+ |
Added lines |

< |
Changed lines |

> |
Changed lines |