forked from arduino/Arduino
-
Notifications
You must be signed in to change notification settings - Fork 0
/
todo.txt
782 lines (682 loc) · 36.8 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
0179 core
X screenWidth/Height instead of screenW/H
X open up the pdf library more (philho)
X http://dev.processing.org/bugs/show_bug.cgi?id=1343
X cache font information for the PDF library to improve setup time
X when using createFont("xxxx.ttf"), should use textMode(SHAPE) with PDF
X because ttf files will not be installed on the system when opening pdf
X added error messages for users
X bring back old-style textAscent()
X needs to just quickly run characters d and p
X only takes a couple ms, so no problem
X pdf library
X throw an error with the black boxes
X throw an error if loading fonts from a file, and not using mode(SHAPE)
X implement default font
X this can be done to replace the exception handler in PGraphics
o however it needs to be a legit font, so that it works w/ pdf
o or maybe pdf just has its own default?
X create characters on the fly when createFont() is used
o memory leak problem with fonts in JAVA2D
X can't get this to crash anymore
o http://dev.processing.org/bugs/show_bug.cgi?id=1252
earlier
X if no draw() method, and renderer is not displayable, then exit
X static mode PDFs shouldn't just hang
big ones
_ ortho() behaving differently in P3D vs OPENGL
_ http://dev.processing.org/bugs/show_bug.cgi?id=100
_ shows a blank canvas
_ (was only happening once b/c was drawing first in perspective)
_ seems to be mapping to 0, 0 - width/2, height/2
_ fix 3D > OrthoVsPerspective example once ortho works properly
_ there's a depth problem in addition to the ortho weirdness
_ modelx/y/z broken when aiming a camera
_ http://dev.processing.org/bugs/show_bug.cgi?id=1074
_ opengl + resize window => window content garbled
_ http://dev.processing.org/bugs/show_bug.cgi?id=1360
_ modify PVector to include better methods for chaining operations
_ http://dev.processing.org/bugs/show_bug.cgi?id=1415
quickies
_ img.get() weirdness
_ http://dev.processing.org/bugs/show_bug.cgi?id=1198
_ copy and blend scale when unnecessary
_ http://dev.processing.org/bugs/show_bug.cgi?id=1482
_ add a limit to pushStyle() to catch unmatched sets?
_ http://dev.processing.org/bugs/show_bug.cgi?id=1368
_ P2D transformation bug from ira
_ http://dev.processing.org/bugs/show_bug.cgi?id=1175
_ resize not working in revision 5707
_ camera() and perspective() were commented out in setSize()
_ http://dev.processing.org/bugs/show_bug.cgi?id=1391
_ chopping out triangles in OpenGL (though it's only 2D drawing)
_ http://dev.processing.org/bugs/show_bug.cgi?id=1359
_ make sure that get() and set() (for pixels and subsets) work w/ loaded images
_ make sure that get() and set() (for pixels and subsets) work w/ P2D
_ make sure that get() and set() (for pixels and subsets) work w/ P3D
_ consider adding skewX/Y
_ do them as shearX/Y
_ http://dev.processing.org/bugs/show_bug.cgi?id=1448
_ add setOutput() method across other renderers?
_ opengl applet problems
_ http://dev.processing.org/bugs/show_bug.cgi?id=1364
_ method of threading but queue an event to be run when safe
_ e.g. queueing items like mouse/keybd, but generic fxns
_ inconsistent anti-aliasing with OpenGL
_ http://dev.processing.org/bugs/show_bug.cgi?id=1413
_ modify PVector to include better methods for chaining operations
_ http://dev.processing.org/bugs/show_bug.cgi?id=1415
_ selectInput() fails when called from within keyPressed()
_ http://dev.processing.org/bugs/show_bug.cgi?id=1220
_ add java.io.Reader (and Writer?) to imports
_ changing vertex alpha in P3D in a QUAD_STRIP is ignored
_ with smoothing, it works fine, but with PTriangle, it's not
_ smooth() not working with applets an createGraphics(JAVA2D)
_ but works fine with applications
_ get() with OPENGL is grabbing the wrong coords
_ http://dev.processing.org/bugs/show_bug.cgi?id=1349
_ gl power of 2 with textures
_ P3D also seems to have trouble w/ textures edges.. bad math?
_ No textures render with hint(ENABLE_ACCURATE_TEXTURES)
_ http://dev.processing.org/bugs/show_bug.cgi?id=985
_ need to remove the hint from the reference
_ need to throw an error when it's used
_ deal with issue of single pixel seam at the edge of textures
_ http://dev.processing.org/bugs/show_bug.cgi?id=602
_ should vertexTexture() divide by width/height or width-1/height-1?
looping/events
_ key and mouse events delivered out of order
_ http://dev.processing.org/bugs/show_bug.cgi?id=638
_ key/mouse events have concurrency problems with noLoop()
_ http://dev.processing.org/bugs/show_bug.cgi?id=1323
_ need to say "no drawing inside mouse/key events w/ noLoop"
_ redraw() doesn't work from within draw()
_ http://dev.processing.org/bugs/show_bug.cgi?id=1363
_ make the index lookup use numbers up to 256?
_ decide whether to keep:
_ public float textWidth(char[] chars, int start, int length)
_ textAlign(JUSTIFY) (with implementation)
_ http://dev.processing.org/bugs/show_bug.cgi?id=1309
_ Semitransparent rect drawn over image not rendered correctly
_ http://dev.processing.org/bugs/show_bug.cgi?id=1280
_ should map() actually constrain to the low and high values?
_ file chooser fails with opengl on linux
_ http://dev.processing.org/bugs/show_bug.cgi?id=1221
_ resizing opengl destroys context and textures
_ http://dev.processing.org/bugs/show_bug.cgi?id=1176
_ what's the difference with ascent on loadFont vs. createFont?
_ noCursor() doesn't work in present mode
_ http://dev.processing.org/bugs/show_bug.cgi?id=1177
_ in P2D, two vertex() line calls with fill() causes duplicate output
_ works fine in other renderers, has to do with tesselation
_ http://dev.processing.org/bugs/show_bug.cgi?id=1191
_ extra triangles being seen in P2D
_ http://dev.processing.org/bugs/show_bug.cgi?id=1192
_ noloop ref even says that redraw will be called on resize, make sure it is
_ public PImage(java.awt.Image) sets format to RGB (but could be ARGB)
[ features ]
_ add version of math functions that use doubles?
_ what other methods should work with doubles? all math functions?
_ seems like internal (mostly static) things, but not graphics api
_ look into replacing nanoxml
_ http://www.exampledepot.com/egs/javax.xml.parsers/pkg.html
[ known problems ]
_ OPENGL sketches flicker w/ Vista when background() not used inside draw()
_ http://dev.processing.org/bugs/show_bug.cgi?id=930
_ Disabling Aero scheme sometimes prevents the problem
_ Updating graphics drivers may prevent the problem
[ need problem sketch ]
_ if too many errors come through during setup, app will terminate
_ printStackTrace() throttles on osx and poops out
_ seen especially on old mac laptops (slow ppc garbage)
_ can this be confirmed properly?
_ * this may just be an OutOfMemoryError happening
[ needs verification ]
_ Frame skipping with processor intensive applets using 1.6
_ http://dev.processing.org/bugs/show_bug.cgi?id=766
_ may be fixed, but not verified
_ focus not coming through, ESC no longer working(?)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
createGraphics() and load/updatePixels() mess [1.0]
_ text characters showing up as opaque rectangles in tga files
_ http://dev.processing.org/bugs/show_bug.cgi?id=641
_ solution is to implement alpha compositing across all of P3D
_ http://en.wikipedia.org/wiki/Alpha_compositing
_ text() not setting zbuffer in P3D because not fully opaque
_ http://dev.processing.org/bugs/show_bug.cgi?id=696
_ alpha not set on saveFrame, so can't be used in photoshop as a layer
_ http://processing.org/discourse/yabb/YaBB.cgi?board=general;action=display;num=1078441623
_ when drawing into a JAVA2D surface, have to call loadPixels()
_ to draw it later with P3D (or OPENGL prolly)
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Syntax;action=display;num=1171574044
_ an offscreen JAVA2D graphics needs loadPixels() before being drawn
_ i.e. offscreen JAVA2D, then image() with OPENGL renderer as main
_ needs to be marked as its cache needs an update, but not its pixels
X begin/endPixels.. change has been made
_ on PImage, sets a flag that marks it to be updated on next render
_ for PImage, begin after an end is ignored, no pixels are re-loaded
_ the "changed" bit gets turned off when the PImage is rendered
_ for subclasses of PGraphics, the reload bit needs to be set on endFrame
_ filter() checks to see if inside begin/endPixels, if so doesn't call
o if line() is called inside beginpixels, call updatepixels?
_ when NPE on line with pixels[], suggest user includes beginPixels
_ need to test/straighten out load/update pixels
_ loadPixels() and updatePixels() only need to be used when
_ touching pixels[]. All other functions including get(), set(),
_ filter(), etc shouldn't need them.
_ image memory use.. how to handle lots of images
_ need to figure out exactly how they should/can unload
_ don't do a loadPixels unless an updatePixels has completed
_ tho this won't affect anything, since either it's an image buffer
_ or it's the PGraphics object, which does an updatePixels() immediately
_ if (modified) don't loadPixels again, just ignore it
_ make a note that updatePixels() only sets a flag in PImage
_ (but not PGraphics, which does it immediately)
o filter() doesn't need a loadPixels
o but if you want to filter *and* mess w/ pixels (avoid double load)
o then do loadPixels() /before/ filter, and updatePixels after messing
o same will go for blend()
_ make sure that filter, blend, copy, etc say that no loadPixels necessary
rework some text/font code [1.0]
_ text placement is ugly, seems like fractional metrics problem
_ http://dev.processing.org/bugs/show_bug.cgi?id=866
_ text(char c) with char 0 and undefined should print nothing
_ perhaps also DEL or other nonprintables?
_ book example 25-03
_ text position is quantized in JAVA2D
_ http://dev.processing.org/bugs/show_bug.cgi?id=806
_ accessors inside PFont need a lot of work
_ osx 10.5 (not 10.4) performing text width calculation differently
_ http://dev.processing.org/bugs/show_bug.cgi?id=972
_ Automatically use textMode(SCREEN) with text() when possible
_ http://dev.processing.org/bugs/show_bug.cgi?id=1020
P2D, P3D, PPolygon [1.0]
_ smoothing
_ how to handle smoothing images in P3D even though it has no smoothing?
_ noSmooth() in opengl should switch to nearest neighbor on textures/images
_ same for P3D
_ P3D smooshes the top row of pixels when drawing text (or images)
_ http://dev.processing.org/bugs/show_bug.cgi?id=466
_ textAlign(CENTER) with P3D and OPENGL produces messy result
_ probably rounding error with the images
_ http://dev.processing.org/bugs/show_bug.cgi?id=475
X textures truly did get worse in P3D
_ problem is that bilinear is turned on by default starting in 0124(?)
X http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Programs;action=display;num=1205171649
_ when turning smoothing on, internal lines of shapes are visible
_ add an edge flag when tesselating
_ mind the opengl tesselation flags
_ need to turn off smoothing for the interior of shapes
_ http://dev.processing.org/bugs/show_bug.cgi?id=200
_ Implement support for complex shapes when using P2D and P3D
_ http://dev.processing.org/bugs/show_bug.cgi?id=1053
_ Implement support for complex shapes when using the OpenGL renderer
_ http://dev.processing.org/bugs/show_bug.cgi?id=947
_ in opengl mode, use its tesselator
_ because the vertex calls can just come right back to regular vertex calls
_ this way we can also implement breakShape() for opengl
_ smooth in P3D has zbuffer glitches
_ http://dev.processing.org/bugs/show_bug.cgi?id=1000
_ smoothing is slow
_ http://dev.processing.org/bugs/show_bug.cgi?id=1001
_ textured sphere example needs to set normals
_ also needs fix for last edge and the seam
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
threading and exiting
_ writing image file (missing a flush() call?) on exit() fails
_ lots of zero length files
_ saveFrame() at the end of a draw mode program is problematic
_ app might exit before the file has finished writing to disk
_ need to block other activity inside screenGrab until finished
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1081706752
_ for begin/endRecord, use a piggyback mechanism
_ that way won't have to pass a PApplet around
_ this has a big impact on the SVG library
_ in fact, this maybe should be a library that does it
_ so that the file size can be much smaller
_ STROKE_WEIGHT field in PGraphics3 is a disaster, because it's an int
_ use the SW from vertex instead.. why set stroke in triangle vars at all?
_ currently truncating to an int inside add_line_no_clip
_ need to clean all this crap up
stop() mess
_ double stop() called with noLoop()
_ http://dev.processing.org/bugs/show_bug.cgi?id=1270
_ stop() not getting called
_ http://dev.processing.org/bugs/show_bug.cgi?id=183
_ major problem for libraries
_ and start() is supposedly called by the applet viewer
_ http://java.sun.com/j2se/1.4.2/docs/api/java/applet/Applet.html#start()
_ need to track this stuff down a bit
_ when closing a sketch via the close box, make sure stop() getting called
X found a problem for release 0133
_ test to see if it's working
_ what's up with stop() vs exit()?
_ need to get this straightened for p5 (i.e. bc has this problem)
_ make sure the main() doesn't exit until the applet has finished
_ i.e. problem with main calling itself multiple times in Alpheus
_ if exit() (or stop) is called, then System.exit() gets called,
_ even though the main() wants to keep going
_ more chatter with this
_ http://dev.processing.org/bugs/show_bug.cgi?id=131
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
CORE / PApplet
_ PApplet.main(new String[] { "classname" }) won't pass in args
_ this means that no args are after passed to the class
_ the fix would be to use the following as the call to main()
_ PApplet.main(append(new String[] { "classname }, args));
_ figure out why 1024x768 image takes 3.5 seconds to load
_ would using a BufferedImage work better?
_ is the image actually a BufferedImage so PixelGrabber is a waste?
_ detect when using full screen
_ and if so, remove decoration and don't bother with bg present frame
_ frame.setUndecorated(true);
_ frame.setLocation(0,0);
_ size(screen.width,screen,height);
_ this will help for exported applets that don't need 'present'
_ check for what else inside PApplet should be static
_ maybe catch RuntimeExceptions in the called sub-functions
_ that way more stuff can be static w/o losing useful error handling
_ (emitting errors when closest to source.. i.e. w/ the filename)
o size() inside draw is missing a new call to cameraMode, etc
_ fix param() to use a sketch.properties file when run as an app
_ make this also be used in generating the html file
_ test winding polygons in different directions
_ test P3D lighting to see how it compares with native OpenGL
_ ed's thread re: fullscreen strategies
_ could add a new BApplet that uses BufferStrategy?
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Programs;action=display;num=1081335361;start=15
_ size() has memory limitations (pitaru)
_ catch OutOfMemoryError inside size() and let the user know
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1038847001
_ loadBytes() needs optimization
_ don't bother using a buffering stream, just handle internally. gah!
_ remove some of the bloat, how can we make things more compact?
_ i.e. if not using 3D, can leave out PGraphics3, PTriangle, PLine
_ http://dev.processing.org/bugs/show_bug.cgi?id=127
E4 _ add shuffle methods for arrays
E4 _ http://dev.processing.org/bugs/show_bug.cgi?id=1462
CORE / PApplet - main()
_ refactor PApplet.main() and Runner.startInternal() to remove duplication
_ http://dev.processing.org/bugs/show_bug.cgi?id=245
_ implement full screen mode.. this takes over the screen as best it can
_ size(screen.width, screen.height, OPENGL);
_ if size is screen.width and screen.height, does its best
_ needs to get the size of the main screen
_ this probably works but just needs to be tested
_ exceptions in full screen mode will quit the app completely
_ can't keep window open because things are hosed
_ default is that full screen app doesn't cover multiple displays
_ this is fine since opengl can't usually go across both
_ but include an example for how to use full in gl
_ ability to select monitor via preferences panel
_ this applies to any applet that's run externally currently (verify)
_ make it also work with anything that's run inside of p5 itself
_ this means changing the frame creation code inside Runner
_ check current present code with multiple monitors
_ hitting cmd-q when an applet is running quits p5 (on macosx)
_ but cmd-q when running externally is ok because it just quits
_ is there a way to catch cmd-q when running a sketch?
_ so that it could avoid quitting if the sketch hasn't been stopped
_ or if the sketch window is foremost
_ maybe a hack where a new menubar is added?
_ --display not working on osx
_ http://dev.processing.org/bugs/show_bug.cgi?id=531
_ "Target VM failed to initialize" when using Present mode on Mac OS X
_ http://dev.processing.org/bugs/show_bug.cgi?id=1257
CORE / PFont and text()
_ improve font metrics
_ http://java.sun.com/products/java-media/2D/reference/faqs/index.html#Q_How_do_I_obtain_font_metrics
_ font encoding issues
_ java seems to force straight windows encoding.. (problem for pi fonts)
_ opentype/cff fonts don't work with live loading from the app
_ many (all?) opentype fonts won't show up or aren't supported
_ this may be only cff fonts that have trouble
_ when encoding is not the standard encoding, problematic
_ so sonata otf and sonata don't seem to have any chars at all
_ text() with a z coordinate is now using translate, very slow
X also puts up a weird error message about translate() in 2D mode
_ make screen space fonts use get/set as well?
_ too much to debug on their own
_ unfortunately tint not set with setImpl, but...
_ optimize textMode(MODEL) with textMode(SCREEN)
_ in PGraphics and PGraphics3, check to see if matrix is within epsilon
_ of one of the rotation matrices (many fewer steps)
_ if identity, or just translate, or a rotate, make OBJECT into SCREEN
_ not having kerning really blows
_ could this be pulled from the OpenType font stuff?
_ it could be placed at the end of the file
_ not having fractional widths on small fonts really blows
_ screen space text looks crappy
_ working with vector fonts?
_ need to be able to handle shapes within shapes (reverse winding)
_ ftgl: main code is in FTVectoriser
_ uses gluTessBeginContour and gluTessEndContour
_ and then does 5 step sizes for each curveto
CORE / PGraphics
_ stroke showing above fill when used with P3D
_ http://dev.processing.org/bugs/show_bug.cgi?id=1032
_ strokeCap() and strokeJoin() for use with P2D, P3D and OPENGL
_ http://dev.processing.org/bugs/show_bug.cgi?id=955
_ y2 position of rectangles not same as y2 position of lines
_ happens when the rectangle is flipped on the x or y axis
_ probably a hack that draws the "last" point differently
_ beginShape()
_ better lockout inside beginShape() to keep other things from happening
_ http://dev.processing.org/bugs/show_bug.cgi?id=1022
_ don't allow you to draw stroked items unless stroke() is called
_ don't allow beginShape() if shape is already set
_ (otherwise will cause some very strange errors)
_ lines
_ z value hack for lines is causing trouble for 2D
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1089737928;start=0
_ rewrite line and stroke code, it's a buggy mess
_ lines become 2 pixels thick after a 3D transform
_ better handling of single-pixel special case
_ flat_line_retribution is a hack, can go away
_ fix-up the curve_init() and the rest to use matrices
_ and not have ugly names (i.e. just g.curveDetail is good)
_ ellipse scaling method isn't great
_ toxi ellipses don't adapt properly with transformations
_ http://dev.processing.org/bugs/show_bug.cgi?id=695
_ weird ellipse bug with an alpha line in same image
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1083221401;start=0
_ scaled ellipse showing up as a hexagon
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1083674213
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1084652597;start=0
_ problem with the fill
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077834735
_ z values not set properly on ellipses?
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1068752615
_ ellipses are just plain ugly
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1073409011;start=0
CORE / PGraphics2D
_ should noSmooth() disable image smoothing consistently (does for Java2D)
_ may need to bring back a hint, or use smoothMode() or smooth(IMAGES)
_ lines are conflicting with type in 2D
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1094174791;start=0
_ mgorbet stroke transparency problem
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076383048;start=0
_ make sure line() commands don't try to have a fill
CORE / PGraphicsJava2D
_ some optimizations from zach
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=os_core_pde;action=display;num=1121670787
_ textMode(SCREEN) needs to be faster
_ need flat image implementation that takes no transforms
_ along with 90, 180 and 270 versions of it as well
_ tie to glDrawPixels.. how to clear matrix properly for that?
_ maybe just disable this for JAVA2D cuz it's silly?
_ catch sun.dc.pr.PRException?
_ http://dev.processing.org/bugs/show_bug.cgi?id=104
CORE / PGraphics3D
_ make thick lines draw perpendicular to the screen with P3D
_ http://dev.processing.org/bugs/show_bug.cgi?id=956
_ ewjordan suggests building the quad in screen coords after perspective
_ improve hint(ENABLE_DEPTH_SORT) to use proper painter's algo
_ http://dev.processing.org/bugs/show_bug.cgi?id=176
_ polygon z-order depth sorting with alpha in opengl
_ complete the implementation of hint() with proper implementation
_ gl alpha on images when flipped around backwards
_ will sorting based on depth help this? also ask simon for ideas
_ need to merge sorting/drawing of lines and triangles
_ lines will occlude tris and vice versa
_ will need to split each based on the other
_ sort issues will affect both
_ images are losing pixels at the edges
_ http://dev.processing.org/bugs/show_bug.cgi?id=102
_ odd error with some pixels from images not drawing properly
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115681453
_ clipping not implemented
_ http://dev.processing.org/bugs/show_bug.cgi?id=1393
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114184516
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1058491568;start=0
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1052313604;start=0
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1095170607;start=0
_ things are flying into the camera and halting apps
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1042699742
_ NullPointerException apparently when things way offscreen
_ i.e. glyphrot with scale set to 4
_ or at least that things get ridiculously slow
_ clipping issues here.. but also something in scan converter
_ not clipping areas from offscreen
_ huge geometry slows things way down
_ Stroking a rect() leaves off the upper right pixel
_ http://dev.processing.org/bugs/show_bug.cgi?id=501
_ box is not opaque
_ problem is that lines are drawn second
_ one pixel lines have no z value.. argh
_ bug re: 3d depth sorting on lines
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1043894019;start=0
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1042004618
_ translate(58, 48, 0);
_ rotateY(0.5);
_ box(40);
CORE / PImage
_ accuracy problems make alpha channel go to FE with image.copy()
_ http://dev.processing.org/bugs/show_bug.cgi?id=1420
_ improve blend() accuracy when using ADD
_ http://dev.processing.org/bugs/show_bug.cgi?id=1008
_ includes code for a slow but more accurate mode
_ for a PGraphics2D, should its image cache object be the memoryimagesource?
_ loading lots of images is a problem, describe how to unload
_ is it possible? necessary to call delay(5) or something?
_ don't grab pixels of java2d images unless asked
_ this is the difference between a lot of loadPixels() and not
_ so important to have it in before beta if that's the change
_ http://dev.processing.org/bugs/show_bug.cgi?id=356
_ add ability to control jpeg compression level with save() and saveFrame()
_ or just write a better example for this one?
_ http://dev.processing.org/bugs/show_bug.cgi?id=342
_ when drawing an image, sense whether drawn rotated
_ specifically, if drawn rotated 90 in either direction, or 180
_ if just rotate/translate, then can use SCREEN_SPACE for fonts
_ updatePixels() is slow to create a BufferedImage
_ therefore the incomplete rendering
_ could this be an issue fixed by a MediaTracker?
CORE / PShape
_ we can do hit testing (at least in 2D) now that we rely on java2d
_ for subclasses, make it easy to grab the structure of vertices
_ actually, just use PShape internally and this will be easier
_ for PShape, need to be able to set the origin (flash people)
CORE / PShapeSVG
_ breaking up classes / figure out how to handle fonts subclass
_ when using get(), reset the bounds for the objects
_ otherwise it's always relative to the original document
_ support for text (shouldn't be too bad, use createFont)
_ implement text spans for svg output
_ get entity tags working in xml library
_ try enabling blending modes
_ add better support for attributes buried in styles (support ai9/10/11)
_ test what happens when transparency is used with gradient fill
_ look into transformation issues... guessing this is probably wrong
_ this may be what's throwing off the radial radius transform
_ implement A and a (elliptical arcs)
_ http://dev.processing.org/bugs/show_bug.cgi?id=996
_ check for any other pieces of missing path api
_ multiple sets of coordinates after a command not supported
_ i.e. M with several coords means moveto followed by many linetos
_ also curveto with multiple sets of points is ignored
_ document somehow.. svg viewer will be discontinued
_ http://www.adobe.com/svg/eol.html
CORE / Mac OS X
_ set the application name to sketch name (not processing.core.PApplet)
_ System.setProperty("com.apple.mrj.application.apple.menu.about.name", ...)
_ -Xdock:name=<application name>
_ -Xdock:icon=<path to icon file>
_ first line of applets is missing on java 1.4+ on the mac
_ http://dev.processing.org/bugs/show_bug.cgi?id=283
_ cursor() broken in applets on macosx?
_ or is it a java 1.4 versus java 1.3 problem?
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1081645955
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
LIBRARIES / PGraphicsOpenGL
_ switch to glWindowPos() instead of glRasterPos() silliness
_ implement setImpl() instead of set() inside PGraphicsOpenGL
_ http://dev.processing.org/bugs/show_bug.cgi?id=943
_ use glCopyPixels() or glReadPixels() instead of copy() method
_ http://dev.processing.org/bugs/show_bug.cgi?id=941
_ implement a more efficient version of blend()
_ http://dev.processing.org/bugs/show_bug.cgi?id=942
_ copy() does not update the screen with OpenGL
_ http://dev.processing.org/bugs/show_bug.cgi?id=933
_ set() requires updatePixels() with OpenGL
_ http://dev.processing.org/bugs/show_bug.cgi?id=705
_ first few frames of OpenGL sketches on Windows run slowly
_ http://dev.processing.org/bugs/show_bug.cgi?id=874
_ updatePixels wth OpenGL requires a lot of memory, need better texture update
_ http://dev.processing.org/bugs/show_bug.cgi?id=610
_ with opengl optimizations via call lists..
_ watch out to make sure raw recording still works
_ (optimizations will have to be disabled to some extent)
_ look into using glu quadrics to handle shape geometries quickly
_ optimizations to opengl
_ disabling error reporting (what's taking it so long?)
_ maybe use a hint() to enable it? or a getError() function?
_ make cached display list of filled/non-filled ellipse.. rect.. etc
_ these don't work when the vertex colors change, but..
_ http://dev.processing.org/bugs/show_bug.cgi?id=657
_ or maybe should be using vertex arrays?
_ maybe break out a separate timage object in textures?
_ needs tindex and tbuffer, both gl specific
_ and for tpixels and twidth/theight, could use another PImage
_ under assumption that most will just need an extra image object
_ this could also be used by people eventually to control tex themselves
_ or maybe call the object "texture"?
_ in opengl lib, need beginTexture(PImage) and endTexture()
_ this will be helpful to have access to the raw texture data
_ that way it can be re-bound by itself, and ppl can write directly to it
_ make textMode(SHAPE) faster in opengl
_ cache for type should be per-renderer
_ make the opengl textmode shape stuff get better and use PShape
_ because opengl needs vectors, but also the image cache for textures
_ opengl needs to shut itself down properly when closing applet
_ otherwise can crash the whole browser
_ get rid of some of the sillier IntBuffer stuff where it's not needed
_ use the version of the prototypes that use an offset into the array
_ need to test performance either way
_ make a note about the anti-aliasing types in the faq
_ polygon vs line etc.. may want to enable lines but disable polys
_ invocationtargetexception in gl with aioobe:
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115185737
_ resolve ARGB versus RGBA versus just A issues for fonts
_ make sure that current scenario works identically on mac
_ if so, just switch the image code to expect alpha in the high bits
_ fonts probably need to be RGBA, not ALPHA style images
_ there's nothing really ALPHA about them?
_ bit shifting in opengl, get down to 2 ops by using other image modes
_ i.e. ABGR_EXT might allow for just two shifts instead of 4
_ allow access to native pixel buffer in opengl and power of 2
_ so that no need to copy/update everything
_ how to handle gluTessVertex calls
_ need to re-map through the regular "vertex" command,
_ but that makes things messy because the glu calls make calls to vertex()
_ and i don't want an additional "pathVertex()" function
LIBRARIES / PGraphicsPDF
_ pdf not rendering unicode with beginRecord()
_ http://dev.processing.org/bugs/show_bug.cgi?id=727
_ pdf sketches exiting before writing has finished
_ people have to call exit() (so that dispose() is called in particular)
_ when using noLoop() and the PDF renderer, sketch should exit gracefully
_ because isDisplayable() returns false, there's no coming back from noLoop
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
LATER / Optimize
_ put a wrapper around InputStream returned by createInput
_ that actually has some notion of the length of its input
_ that way, methods could use the information when reading
_ can loadBytes() be improved by querying file size first?
_ background
_ this would require a new version of createInput(), which would query
_ the URL (or file) for an actual file size. the size is not always
_ available, so it can't be relied upon, but would help in some cases.
_ loadBytes() is used for images.. ouch
_ might be worth doing a test to see if it actually would help at all
_ before rewriting all of createInput()
_ too much object creation in java2d
_ causes inconsistency/hiccups as the gc runs?
_ work through loadPixels in PImage, how consistent do we need to be?
_ with get() and set() methods, this gets really tricky (too slow)
_ could optimize by keeping a java image around, but table for later
_ it's too significant a change, and not enough time to test
LATER (post 1.0)
_ add getSketchSize() and getSketchRenderer()
_ these could simply have the defaults at the outset
_ opengl.jar with eclipse
_ auto-extract native libs from opengl.jar
_ to remove java.library.path problems (!)
_ introduce calc()
_ semantics of this are just too tricky, especially when it's not clear
_ what's actually gained by the split--would have to do weird hacks
_ to get the accum buffer, etc. to work anyway
_ add some sort of unprojectX/Y/Z method (based on glu fxn)
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=OpenGL;action=display;num=1176483247
_ implement method for lightweight components with processing applets
_ http://dev.processing.org/bugs/show_bug.cgi?id=686
_ Use getContextClassLoader() instead of Class.forName()
_ http://dev.processing.org/bugs/show_bug.cgi?id=514
_ add a timer(obj, "functionname", 45) method
_ this can be used to schedule something to happen at a specific time
_ or import the swing timer (for actionPerformed)
X look into javascript timers to see how they work
_ also add interval("functionname", 40)
_ and thread("functionname");
_ problem is that this will
_ cmyk version of tiff encoder code?
_ because 'color' isn't a real data type
_ color(0, 0, 0, 0) produces black
_ because color(0, 0, 0, 0) creates an int that is simply '0'
_ although fill(0, 0, 0, 0) does the right thing
_ also, rgb255 not getting set
_ http://dev.processing.org/bugs/show_bug.cgi?id=382
_ should fill(c) instead be fillColor(c)?
_ should color(123, 4, 99) instead be createColor()?
_ gray that's greater than the colorMode() can produce strange colors
_ http://dev.processing.org/bugs/show_bug.cgi?id=432
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1083650609
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1082481891
_ add stroke() to type
_ more for doing outlines-only and that sort of business
_ gradients
_ use gradients in a class for the svg lib for now
_ don't add api to main p5 stuff (though maybe setPaint/noPaint api?)
_ gradient-painted lines and fills
_ java2d will do both line and fill, illusfarter only does fills
_ gradients not supported in java2d
_ http://dev.processing.org/bugs/show_bug.cgi?id=371
_ illustrator export / rendering mode
_ also postscript or pdf export?
_ update illustrator code to use core api
_ even if not actually working properly.. just in naming of things
_ sorting of polygons/lines on simple painters algorithm
_ better lighting model to show darkness at various depths
_ maybe just ultra-high res bitmaps from gl
_ bspline or nurbs (later, want to do the 3D/arch stuff correctly)
_ cairo tesselation used:
_ John Hobby, Practical Segment Intersection with Finite Precision Output.
_ Computational Geometry Theory and Application, 13(4), 1999.
_ http://citeseer.ist.psu.edu/hobby93practical.html
_ color
_ rounding errors on color conversion
_ colorMode(RGB, 1.0); colorMode(255); println(red(color(0.5,1,1)));
_ will return 127, instead of 128.
_ curves
_ non-homogenous coloring for curve vertices
_ textMode(SHAPE) and textMode(IMAGE)?
_ textMode(SCREEN) is out of its league?
_ textMode(SHAPE) and hint(SMOOTHING) calls are really awkward
_ maybe need to add properties to the size() command?
_ or use a getXxxx() method?
_ should beginRecord inherit settings from its parent renderer?
_ textFont() is null on beginRecord
_ same would be the case for strokeWeight, background, etc.
_ http://dev.processing.org/bugs/show_bug.cgi?id=346
_ repeating texture support
_ exactly how should pixel filling work with single pixel strokes?
_ http://dev.processing.org/bugs/show_bug.cgi?id=1025
_ Writing XML files (clean up the API)
_ http://dev.processing.org/bugs/show_bug.cgi?id=964
_ consider bringing back text/image using cache/names