move drawing.starty into line cache

[?]
Jul 21, 2022, 12:06 AM
3OTESDW65UJ2W5RIXA6FNKRSD7TBCZTCCCEAYOQMEVGYZ6RCU34QC

Dependencies

  • [2] MTJEVRJR add state arg to a few functions
  • [3] FZCKGO2I make local functions look different
  • [4] QFC3WRDZ chunking by simple local variable
  • [5] BXJMGTV2 hoist couple of variables out
  • [6] TGZAJUEF bring back a set of constants
  • [7] SRVDX4I5 local var
  • [8] R3XGABER chunk up some long lines
  • [9] NHA7RUFI move current mode indicator slightly
  • [10] 5DOTWNVM right margin
  • [11] JAXPXLEB set current_drawing_index with current_drawing
  • [12] AH744RFR show when we're naming a point
  • [13] UHB4GARJ left/right margin -> left/right coordinates
  • [14] OWK3U6VD tests for drawing polygons
  • [15] 7JH2ZT3F add state arg to Drawing.draw
  • [16] VHQCNMAR several more modules
  • [17] NYQ7HD4D move
  • [18] 6DE7RBZ6 move mouse_released events to Drawing
  • [19] K2X6G75Z start writing some tests for drawings
  • [20] JFFUF5AL override mouse state lookups in tests
  • [21] PJEQCTBL add state arg to Drawing.update
  • [22] W2CQ7YNG more chunks, same approach
  • [23] LNUHQOGH start passing in Editor_state explicitly
  • [24] XNFTJHC4 split keyboard handling between Text and Drawing
  • [25] EHSUSZMK more idiomatic variable names
  • [26] LF7BWEG4 group all editor globals
  • [27] HYEAFRZ2 split mouse_pressed events between Text and Drawing
  • [28] DRFE3B3Z mouse buttons are integers, not strings
  • [29] YJGADSGK delete unused arg
  • [30] LYN3L74W correct commit f3abc2cbf2
  • [31] YCDYGEZU include drawing index in a few places
  • [32] 65HNIAOS make freehand drawings smoother
  • [33] FFBIY74N bugfix: 'escape' to cancel a stroke
  • [34] DLQMM265 scroll past first page
  • [35] LAW2O3NW extract variable Margin_left
  • [36] 4KC7I3E2 make colors easier to edit
  • [37] WTDKUACN rectangle and square shapes
  • [38] RT6EV6OP delegate update events to drawings
  • [39] 2JLVAYHB start decoupling editor tests from App
  • [40] 2L5MEZV3 experiment: new edit namespace
  • [41] DLQAEAC7 add state arg to Drawing.mouse_pressed
  • [42] 3RGHOJ25 DRY some code
  • [43] C45WCXJ2 keep drawings within the line width slider as well
  • [44] BYG5CEMV support for naming points
  • [45] CRYGI3LR more drawing tests
  • [46] M6TH7VSZ rip out notion of Line_width
  • [47] BLWAYPKV extract a module
  • [48] LUNH47XX make text and drawings the same width
  • [49] 23MA4T3G add state arg to Drawing.keychord_pressed
  • [50] QXVD2RIF add state arg to Drawing.mouse_released
  • [51] 3HVBAZPA add state arg to a few functions
  • [52] KTZQ57HV replace globals with args in a few functions
  • [53] BJ2C6F2B ignore 'name' mode in a few places
  • [54] P5QNVXSN drop final mention of state global beyond main.lua

Change contents

  • replacement in edit.lua at line 161
    [6.557][7.5379:5396](),[7.3656][7.5379:5396](),[7.99168][7.5379:5396](),[7.5379][7.5379:5396](),[7.5396][7.15:47]()
    line.y = y
    Drawing.draw(State, line)
    [6.557]
    [6.558]
    Drawing.draw(State, line_index, y)
  • replacement in edit.lua at line 226
    [7.8089][7.685:754]()
    if Drawing.in_drawing(line, x, y, State.left,State.right) then
    [7.8089]
    [7.5145]
    local line_cache = State.line_cache[line_index]
    if Drawing.in_drawing(line, line_cache, x, y, State.left,State.right) then
  • replacement in edit.lua at line 231
    [2.2295][7.15:77](),[7.8266][7.15:77]()
    Drawing.mouse_pressed(State, line, x,y, mouse_button)
    [2.2295]
    [7.8321]
    Drawing.mouse_pressed(State, line_index, x,y, mouse_button)
  • replacement in drawing_tests.lua at line 37
    [7.106470][6.635:742]()
    check_eq(Editor_state.lines[1].y, Editor_state.top+Drawing_padding_top, 'F - test_draw_line/baseline/y')
    [7.106470]
    [7.106597]
    check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'F - test_draw_line/baseline/y')
  • replacement in drawing_tests.lua at line 83
    [7.107537][6.962:1080]()
    check_eq(Editor_state.lines[1].y, Editor_state.top+Drawing_padding_top, 'F - test_draw_horizontal_line/baseline/y')
    [7.107537]
    [7.107675]
    check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'F - test_draw_horizontal_line/baseline/y')
  • replacement in drawing_tests.lua at line 112
    [7.108512][6.1300:1409]()
    check_eq(Editor_state.lines[1].y, Editor_state.top+Drawing_padding_top, 'F - test_draw_circle/baseline/y')
    [7.108512]
    [7.108641]
    check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'F - test_draw_circle/baseline/y')
  • replacement in drawing_tests.lua at line 142
    [7.109628][6.1734:1845]()
    check_eq(Editor_state.lines[1].y, Editor_state.top+Drawing_padding_top, 'F - test_cancel_stroke/baseline/y')
    [7.109628]
    [7.109759]
    check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'F - test_cancel_stroke/baseline/y')
  • replacement in drawing_tests.lua at line 182
    [7.111061][6.2166:2286]()
    check_eq(Editor_state.lines[1].y, Editor_state.top+Drawing_padding_top, 'F - test_draw_circle_mid_stroke/baseline/y')
    [7.111061]
    [7.111201]
    check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'F - test_draw_circle_mid_stroke/baseline/y')
  • replacement in drawing_tests.lua at line 211
    [7.112170][6.2611:2717]()
    check_eq(Editor_state.lines[1].y, Editor_state.top+Drawing_padding_top, 'F - test_draw_arc/baseline/y')
    [7.112170]
    [7.112296]
    check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'F - test_draw_arc/baseline/y')
  • replacement in drawing_tests.lua at line 243
    [7.113295][6.3038:3148]()
    check_eq(Editor_state.lines[1].y, Editor_state.top+Drawing_padding_top, 'F - test_draw_polygon/baseline/y')
    [7.113295]
    [7.113425]
    check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'F - test_draw_polygon/baseline/y')
  • replacement in drawing_tests.lua at line 282
    [7.114419][6.3450:3562]()
    check_eq(Editor_state.lines[1].y, Editor_state.top+Drawing_padding_top, 'F - test_draw_rectangle/baseline/y')
    [7.114419]
    [7.114551]
    check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'F - test_draw_rectangle/baseline/y')
  • replacement in drawing_tests.lua at line 327
    [7.115698][6.3947:4072]()
    check_eq(Editor_state.lines[1].y, Editor_state.top+Drawing_padding_top, 'F - test_draw_rectangle_intermediate/baseline/y')
    [7.115698]
    [7.115843]
    check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'F - test_draw_rectangle_intermediate/baseline/y')
  • replacement in drawing_tests.lua at line 364
    [7.116845][6.4345:4454]()
    check_eq(Editor_state.lines[1].y, Editor_state.top+Drawing_padding_top, 'F - test_draw_square/baseline/y')
    [7.116845]
    [7.116974]
    check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'F - test_draw_square/baseline/y')
  • replacement in drawing.lua at line 7
    [7.315][7.50:85]()
    function Drawing.draw(State, line)
    [7.315]
    [7.1533]
    function Drawing.draw(State, line_index, y)
    local line = State.lines[line_index]
    local line_cache = State.line_cache[line_index]
    line_cache.starty = y
  • replacement in drawing.lua at line 12
    [7.1580][7.757:855]()
    if pmx < State.right and pmy > line.y and pmy < line.y+Drawing.pixels(line.h, State.width) then
    [7.1580]
    [7.1026]
    if pmx < State.right and pmy > line_cache.starty and pmy < line_cache.starty+Drawing.pixels(line.h, State.width) then
  • replacement in drawing.lua at line 14
    [7.1052][7.856:960]()
    love.graphics.rectangle('line', State.left,line.y, State.width,Drawing.pixels(line.h, State.width))
    [7.1052]
    [7.318]
    love.graphics.rectangle('line', State.left,line_cache.starty, State.width,Drawing.pixels(line.h, State.width))
  • replacement in drawing.lua at line 16
    [7.363][7.36823:36888]()
    icon[State.current_drawing_mode](State.right-22, line.y+4)
    [7.363]
    [7.523]
    icon[State.current_drawing_mode](State.right-22, line_cache.starty+4)
  • replacement in drawing.lua at line 18
    [7.532][7.36889:36955]()
    icon[State.previous_drawing_mode](State.right-22, line.y+4)
    [7.532]
    [7.589]
    icon[State.previous_drawing_mode](State.right-22, line_cache.starty+4)
  • replacement in drawing.lua at line 33
    [7.73][7.73:125]()
    local my = Drawing.coord(pmy-line.y, State.width)
    [7.73]
    [7.894]
    local my = Drawing.coord(pmy-line_cache.starty, State.width)
  • replacement in drawing.lua at line 42
    [7.1083][7.961:1029]()
    Drawing.draw_shape(line, shape, line.y, State.left,State.right)
    [7.1083]
    [7.1122]
    Drawing.draw_shape(line, shape, line_cache.starty, State.left,State.right)
  • replacement in drawing.lua at line 46
    [3.93][3.93:165]()
    local function py(y) return Drawing.pixels(y, State.width)+line.y end
    [3.93]
    [7.10]
    local function py(y) return Drawing.pixels(y, State.width)+line_cache.starty end
  • replacement in drawing.lua at line 76
    [7.1279][7.1461:1528]()
    Drawing.draw_pending_shape(line, line.y, State.left,State.right)
    [7.1279]
    [7.10]
    Drawing.draw_pending_shape(line, line_cache.starty, State.left,State.right)
  • replacement in drawing.lua at line 212
    [7.4360][7.5380:5434](),[7.5434][7.2202:2271](),[7.688][7.2202:2271]()
    function Drawing.in_drawing(drawing, x,y, left,right)
    if drawing.y == nil then return false end -- outside current page
    [7.646]
    [7.5435]
    function Drawing.in_drawing(drawing, line_cache, x,y, left,right)
    if line_cache.starty == nil then return false end -- outside current page
  • replacement in drawing.lua at line 215
    [7.5462][7.5462:5567]()
    return y >= drawing.y and y < drawing.y + Drawing.pixels(drawing.h, width) and x >= left and x < right
    [7.5462]
    [7.795]
    return y >= line_cache.starty and y < line_cache.starty + Drawing.pixels(drawing.h, width) and x >= left and x < right
  • replacement in drawing.lua at line 218
    [7.800][7.80:140]()
    function Drawing.mouse_pressed(State, drawing, x,y, button)
    [7.800]
    [4.17]
    function Drawing.mouse_pressed(State, drawing_index, x,y, button)
    local drawing = State.lines[drawing_index]
    local line_cache = State.line_cache[drawing_index]
  • replacement in drawing.lua at line 222
    [4.71][4.71:124]()
    local cy = Drawing.coord(y-drawing.y, State.width)
    [4.71]
    [7.140]
    local cy = Drawing.coord(y-line_cache.starty, State.width)
  • edit in drawing.lua at line 248
    [7.179]
    [7.218]
    local line_cache = State.line_cache[State.lines.current_drawing_index]
  • replacement in drawing.lua at line 252
    [5.134][5.134:189]()
    local my = Drawing.coord(pmy-drawing.y, State.width)
    [5.134]
    [7.1585]
    local my = Drawing.coord(pmy-line_cache.starty, State.width)
  • replacement in drawing.lua at line 254
    [7.1613][7.66:139]()
    if Drawing.in_drawing(drawing, pmx,pmy, State.left,State.right) then
    [7.1613]
    [7.384]
    if Drawing.in_drawing(drawing, line_cache, pmx,pmy, State.left,State.right) then
  • replacement in drawing.lua at line 264
    [7.457][7.249:323]()
    if Drawing.in_drawing(drawing, pmx, pmy, State.left,State.right) then
    [7.457]
    [7.949]
    if Drawing.in_drawing(drawing, line_cache, pmx, pmy, State.left,State.right) then
  • edit in drawing.lua at line 302
    [7.487]
    [7.46]
    local line_cache = State.line_cache[State.lines.current_drawing_index]
  • replacement in drawing.lua at line 311
    [7.227][7.1673:1777]()
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-drawing.y, State.width)
    [7.227]
    [7.297]
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
  • replacement in drawing.lua at line 318
    [7.627][7.1778:1882]()
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-drawing.y, State.width)
    [7.627]
    [7.697]
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
  • replacement in drawing.lua at line 326
    [7.1032][7.6400:6516]()
    App.mouse_move(State.left+Drawing.pixels(p2.x, State.width), drawing.y+Drawing.pixels(p2.y, State.width))
    [7.1032]
    [7.1122]
    App.mouse_move(State.left+Drawing.pixels(p2.x, State.width), line_cache.starty+Drawing.pixels(p2.y, State.width))
  • replacement in drawing.lua at line 330
    [7.1231][7.1883:1987]()
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-drawing.y, State.width)
    [7.1231]
    [7.1301]
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
  • replacement in drawing.lua at line 338
    [7.1668][7.1988:2094]()
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-drawing.y, State.width)
    [7.1668]
    [7.1740]
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
  • replacement in drawing.lua at line 353
    [7.2366][7.2095:2201]()
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-drawing.y, State.width)
    [7.2366]
    [7.2438]
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
  • replacement in drawing.lua at line 364
    [7.2970][7.2202:2306]()
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-drawing.y, State.width)
    [7.2970]
    [7.3040]
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
  • replacement in drawing.lua at line 371
    [7.3348][7.2307:2411]()
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-drawing.y, State.width)
    [7.3348]
    [7.3418]
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
  • replacement in drawing.lua at line 476
    [7.690][7.360:413](),[7.413][7.2412:2536]()
    local _,drawing = Drawing.current_drawing(State)
    local mx,my = Drawing.coord(App.mouse_x()-State.left, State.width), Drawing.coord(App.mouse_y()-drawing.y, State.width)
    [7.690]
    [7.7883]
    local _,drawing,line_cache = Drawing.current_drawing(State)
    local mx,my = Drawing.coord(App.mouse_x()-State.left, State.width), Drawing.coord(App.mouse_y()-line_cache.starty, State.width)
  • replacement in drawing.lua at line 481
    [7.936][7.414:467](),[7.467][7.2537:2661]()
    local _,drawing = Drawing.current_drawing(State)
    local mx,my = Drawing.coord(App.mouse_x()-State.left, State.width), Drawing.coord(App.mouse_y()-drawing.y, State.width)
    [7.936]
    [7.7963]
    local _,drawing,line_cache = Drawing.current_drawing(State)
    local mx,my = Drawing.coord(App.mouse_x()-State.left, State.width), Drawing.coord(App.mouse_y()-line_cache.starty, State.width)
  • replacement in drawing.lua at line 491
    [7.1177][7.468:521]()
    local _,drawing = Drawing.current_drawing(State)
    [7.1177]
    [7.7225]
    local _,drawing,line_cache = Drawing.current_drawing(State)
  • replacement in drawing.lua at line 493
    [7.7258][7.2662:2786]()
    local mx,my = Drawing.coord(App.mouse_x()-State.left, State.width), Drawing.coord(App.mouse_y()-drawing.y, State.width)
    [7.7258]
    [7.7414]
    local mx,my = Drawing.coord(App.mouse_x()-State.left, State.width), Drawing.coord(App.mouse_y()-line_cache.starty, State.width)
  • replacement in drawing.lua at line 509
    [7.2665][7.576:651]()
    local drawing_index,drawing,i,p = Drawing.select_point_at_mouse(State)
    [7.2665]
    [7.10152]
    local drawing_index,drawing,line_cache,i,p = Drawing.select_point_at_mouse(State)
  • replacement in drawing.lua at line 520
    [7.2771][7.652:737]()
    local drawing_index,drawing,point_index,p = Drawing.select_point_at_mouse(State)
    [7.2771]
    [7.1952]
    local drawing_index,drawing,line_cache,point_index,p = Drawing.select_point_at_mouse(State)
  • replacement in drawing.lua at line 533
    [7.2827][7.738:801]()
    local _,drawing,i,p = Drawing.select_point_at_mouse(State)
    [7.2827]
    [7.10804]
    local _,drawing,_,i,p = Drawing.select_point_at_mouse(State)
  • replacement in drawing.lua at line 551
    [7.11312][7.802:867]()
    local drawing,_,shape = Drawing.select_shape_at_mouse(State)
    [7.11312]
    [7.11372]
    local drawing,_,_,shape = Drawing.select_shape_at_mouse(State)
  • replacement in drawing.lua at line 618
    [7.19238][7.8191:8262](),[7.8262][7.654:691](),[7.701][7.654:691]()
    if Drawing.in_drawing(drawing, x,y, State.left,State.right) then
    return drawing_index,drawing
    [7.19238]
    [7.19373]
    local line_cache = State.line_cache[drawing_index]
    if Drawing.in_drawing(drawing, line_cache, x,y, State.left,State.right) then
    return drawing_index,drawing,line_cache
  • replacement in drawing.lua at line 628
    [7.1124][7.1124:1166]()
    for _,drawing in ipairs(State.lines) do
    [7.1124]
    [7.19492]
    for drawing_index,drawing in ipairs(State.lines) do
  • replacement in drawing.lua at line 631
    [7.4159][7.8263:8334](),[7.8334][7.2787:2891]()
    if Drawing.in_drawing(drawing, x,y, State.left,State.right) then
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-drawing.y, State.width)
    [7.4159]
    [7.19800]
    local line_cache = State.line_cache[drawing_index]
    if Drawing.in_drawing(drawing, line_cache, x,y, State.left,State.right) then
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
  • replacement in drawing.lua at line 637
    [7.19928][7.19928:19963]()
    return drawing,i,shape
    [7.19928]
    [7.19963]
    return drawing,line_cache,i,shape
  • replacement in drawing.lua at line 649
    [7.4208][7.8335:8406](),[7.8406][7.2892:2996]()
    if Drawing.in_drawing(drawing, x,y, State.left,State.right) then
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-drawing.y, State.width)
    [7.4208]
    [7.20403]
    local line_cache = State.line_cache[drawing_index]
    if Drawing.in_drawing(drawing, line_cache, x,y, State.left,State.right) then
    local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
  • replacement in drawing.lua at line 655
    [7.8465][7.741:790](),[7.20521][7.741:790]()
    return drawing_index,drawing,i,point
    [7.8465]
    [7.20556]
    return drawing_index,drawing,line_cache,i,point
  • replacement in drawing.lua at line 664
    [7.1488][7.1488:1530]()
    for _,drawing in ipairs(State.lines) do
    [7.1488]
    [7.20690]
    for drawing_index,drawing in ipairs(State.lines) do
  • replacement in drawing.lua at line 667
    [7.4257][7.8466:8537]()
    if Drawing.in_drawing(drawing, x,y, State.left,State.right) then
    [7.4257]
    [7.20896]
    local line_cache = State.line_cache[drawing_index]
    if Drawing.in_drawing(drawing, line_cache, x,y, State.left,State.right) then