forked from loopunit/OpenFrameworks-ng
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changes.txt
1394 lines (1109 loc) · 62.4 KB
/
changes.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
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
________________/\\\\\\\\\\\\\\\_________/\\\\\\\___________/\\\\\\\\\\\\\\\_____________/\\\____
_______________\/\\\///////////________/\\\/////\\\________\/////////////\\\___________/\\\\\____
_______________\/\\\__________________/\\\____\//\\\__________________/\\\/__________/\\\/\\\____
_____/\\\\\____\/\\\\\\\\\\\_________\/\\\_____\/\\\________________/\\\/___________/\\\/\/\\\____
___/\\\///\\\__\/\\\///////__________\/\\\_____\/\\\______________/\\\/___________/\\\/__\/\\\____
__/\\\__\//\\\_\/\\\_________________\/\\\_____\/\\\____________/\\\/___________/\\\\\\\\\\\\\\\\_
_\//\\\__/\\\__\/\\\_________________\//\\\____/\\\___________/\\\/____________\///////////\\\//__
__\///\\\\\/___\/\\\__________________\///\\\\\\\/____/\\\__/\\\/________/\\\___________\/\\\____
____\/////_____\///_____ _______________\///////_____\///__\///__________\///____________\///_____
------------------------------------------------------------------------------
OF 0.7.4 changelog:
change key:
+ added
- removed
/ modified
------------------------------------------------------------------------------
MAJOR CHANGES
========================
New Codeblocks (windows):
For 0.7.4 we updated all core libraries to work against the new version of codeblocks, which itself uses a new version of GCC. Anyone using codeblocks on windows will need to update to 12.11, because these libraries will not work with older versions of codeblocks.
System Libraries (linux):
Linux now uses some system libraries instead of including them in the core. Please ensure you have installed the system dependencies for your OS. You can install the system dependencies by executing the install_dependencies.sh script in $OF_ROOT/scripts/linux/DISTRO/install_dependencies.sh, where DISTRO is your running linux distribution. Currently oF has install scripts for Debian, Ubuntu, ArchLinux, and Fedora.
New versioning system:
From now on, OF version are numbered Major.Minor.Patch (e.g. 0.7.4). See Utils section and readme.md for details.
DEPRECATIONS & REMOVALS
========================
- removed OF_USING_POCO conditionals
- support for Codeblocks version 10.04 on windows
- removed portaudio and freetype libraries. Linux now uses some system libraries. Please ensure you have installed the system dependencies.
CORE
====
## 3d
ofCamera:
+ added getForceAspectRatio() and getAspectRatio()
- dependencies with glu, openGL
/ fix const correctness
/ fixed worldToScreen() bug
/ lens offset
ofEasyCam:
/ setPosition fix
ofMesh:
/ fixed load and save type mismatch
/ fixed ofMesh.load() to load Normals
3DModelBuilder:
/ to work with OpenGL ES
## App
No Updates
## Communication
No Updates
## Events
+ added void events (events that can be listened to from a method without arguments)
- removed OF_USING_POCO conditionals
## Graphics
ofTrueTypeFont:
/ fixed out-of-bounds access in string display functions
/ fixed getStringAsPoints() when using full character set
ofColor:
+ css3-style colors (ofColor::mediumAquaMarine, ofColor::lightSkyBlue, etc.)
ofPath:
+ added ofCurveVertex(x, y, z) overload
## Math
No Updates
## GL
No Updates
## Sound
No Updates
## Types
No Updates
## Utils
+ added ofToDouble()
+ added Android and iOS functionality to ofLaunchBrowser
/ ofGetVersionInfo() now returns only the version string.
ofBuffer:
+ added append()
ofConstants:
+ added #include <cfloat>
/ The OF_VERSION* defines have been changed for the new version system.
## Video
ofGstVideoGrabber:
+ included support for PREFER_RGB_OVER_YUV and PREFER_NON_COMPRESSED
/ updated gstreamer player/grabber to be compatible with gstreamer 1.0
PLATFORM SPECIFIC
=================
## Android
+ added ofxAndroidLaunchBrowser(String url)to ofxAndroidUtils
+ added parent OFActivity class
+ added wifi multicast lock
+ added unloadTextures() to ofxAndroidApp
/ fixed getPan() and multiplay resume in ofxAndroidSoundPlayer
/ exposed getRealExternalStorageDirectory() as a public method
/ changed dataPath location to use Android standards
/ updated to Android SDK 21 and NDK r8d
/ updated eclipse project to use default run method instead of AndroidInstall target
/ fixed windows platform detection
/ added ability to choose arm targets through config.make
/ updates to the accelerometer units
/ updated readme file to reflect latest changes in Eclipse setup
ofImage:
/ register images on load
## Mac OS X
/ ofQTKitVideoGrabber now uses BGRA with BGRA to RGB blitting for fast capture.
## iOS
ofImage:
/ register images on load
## Linux
- removed portaudio and freetype libraries
## Windows
+ codeblocks 12.11 support (drop support for earlier CB versions)
/ fixed grayscale image on windows
/ fixed microsecond timer overflow
CORE ADDONS
============
## ofxOpenCV
/ fixed broken hole detection in CV contour finder
/ applied patch for opencv bug (http://code.opencv.org/issues/1643)
## ofxOpenALSoundPlayer
/ fixed static ofMutex issue in ofxOpenALSoundPlayer
## ofxAssimpModelLoader
/ Assimp makeover
/ aiNode bugfix
## ofxTCP
+ adds rawMsg send and receive
/ fixes tcp close
## ofxSvg
/ several bugfixes for ofxSvg
PROJECT GENERATOR
==================
## project generator (simple)
/ updated the git submodule and gitignore for develop branch
/ fix project generator on Linux
EXAMPLES
=========
## All Platforms
+ added simpleEventsExample
+ added graphics/colorExtended example
/ fixed GPUparticleSystemExample unexpected behavior
/ added missing baud variable to communication/serialExample
/ updated firmataExample and fontShapesExample to use ofBaseApp instead of ofSimpleApp
## Android
+ androidAccelerometerExample
+ android3DModelLoaderExample
/ updated android examples to use ofxAndroidApp instead of ofBaseApp
---------------------------------------------------------------
.oooo. .oooo. ooooooooo .oooo.
d8P'`Y8b d8P'`Y8b d"""""""8' .dP""Y88b
888 888 888 888 .8' ]8P'
888 888 888 888 .8' <88b.
888 888 888 888 .8' `88b.
`88b d88' `88b d88' .8' o. .88P
`Y8bd8P' `Y8bd8P' .8' `8bd88P'
OF 0073 changelog:
change key:
+ added
- removed
/ modified
---------------------------------------------------------------
/ ofGetElapsedTimef() no longer wraps after ~71 minutes, which was a bug introduced with 0072. ofGetElapsedTimeMicros() previously also wrapped after ~71 minutes, and this has been fixed as well.
/ fixed broken pause and other fixes in ofVideoPlayer on OSX
/ fixes to AndroidVideoGrabber
/ Android empty example inherits from ofxAndroidApp + adds android methods
+ auto register android touch events
+ ofMultMatrix(), ofLoadMatrix(), ofLoadIdentityMatrix()
---------------------------------------------------------------
.oooo. .oooo. ooooooooo .oooo.
d8P'`Y8b d8P'`Y8b d"""""""8' .dP""Y88b
888 888 888 888 .8' ]8P'
888 888 888 888 .8' .d8P'
888 888 888 888 .8' .dP'
`88b d88' `88b d88' .8' .oP .o
`Y8bd8P' `Y8bd8P' .8' 8888888888
OF 0072 changelog:
change key:
+ added
- removed
/ modified
-------------------------------------------------------------
DEPRECATIONS & REMOVALS
========================
## Deprecations: (will be removed in a future release, replacements noted after --->)
/ ofVec*f: squareLength() ---> lengthSquared()
/ ofVideoGrabber: grabFrame() ---> update()
/ ofVideoPlayer: idleMovie() ---> update()
/ ofPolyline: addVertexes() ---> addVertices()
ofGraphics:
/ ofVertexes() ---> ofVertices()
/ ofCurveVertexes() ---> ofCurveVertices()
ofQTKitPlayer:
/ bind() ---> getTexture()->bind()
/ unbind() ---> getTexture()->unbind()
ofAppiPhoneWindow:
/ enableRetinaSupport() ---> enableRetina()
/ isRetinaSupported() ---> isRetinaSupportedOnDevice()
/ isDepthEnabled() ---> isDepthBufferEnabled()
## Removals: (have been deprecated previously, their functionality has been migrated to the OF core)
- ofxDirList ---> ofFileUtils: ofFile, ofFilePath, ofDirectory, etc
- ofxThread ---> ofThread
- ofxVectorMath ---> ofVectorMath: ofVec2f, ofVec3f, etc
CORE
====
/ fixed lots of compilation warnings in the core library
## 3d
/ ofMaterial: fixed incorrect storing / restoring of shininess
ofEasyCam:
+ enable/disable/get now uses middle mouse button for translation, activated by default
+ added set/get translation key, pressing this key and dragging with the left mouse button
will translate the camera instead of rotating
- removed mouseEvent listener methods
/ underlying math rewritten for readability, efficiency, & reliability
/ fixed strange or erratic behaviour and blocked rotation
/ setTarget now behaves as expected
/ fixed camera movement before dragging
/ updated rotation interactions to rotate over all three axes, rotation over the X or Y axes is
achieved by starting to drag inside a circle with it's diameter set to the minimum between
the viewport width and height, when the drag starts outside this circle Z axis rotation is achieved
ofMesh:
/ convert all index types from int to ofIndexType
/ fixes to multiLightExample
ofNode:
+ missing implementation for rotateAround()
+ added getGlobalScale()
## App
/ ofGetElapsedTimeMillis() now returns an unsigned long
## Communication
+ added ofSerial speed: 230400
## Events
/ ofNotifyMousePressed() wasn't updating currentMouseX and currentMouseY
/ ofEvents: const parameters in events can be notifed by passing a value directly
## Graphics
+ added ofClear(ofColor c)
+ added ofRectRounded functions, bring on the lawsuit APPL ...
/ fixed anti-aliasing issue when auto background set to false
/ ofFloatImage and ofShortImage display correctly again
/ ofDrawBitmapString(): default style changed to be backwards compatible with pre-007
/ ofDrawBitmapString(): fixed drawing in simple mode, and drawing with alpha enabled
/ ofDrawBitmapString(): fixed rendering to FBOs (i.e. upside-down inside FBO)
/ ofGstUtils: several fixes for network streams and performance
ofCairoRenderer:
+ added support for rendering to a png
/ now sets current style every frame since Cairo wasn't preserving the style
/ now gueses type from file extension and renders to memory
/ fixed broken Z-rotation when called with ofRotate(X,0,0,1)
/ use ofSaveImage() to save image buffers instead of Cairo png
ofImage:
/ saveImage() now flattens color channels (4 to 3) when saving a jpeg
/ fixed memcpy bug in getBmpFromPixels()
/ update() rewritten to use ofGetGlInternalFormat so ofImage can handle short and float images
ofPolyline:
+ added fromRectangle()
/ getBoundingBox() is now const
ofTrueTypeFont:
/ make font rendering whitespace and printable character width the same
## Math
/ ofPoint & ofVec*f: fixed myVec = float only assigning to the x value,
now prints an error message to help track down bugs, you should now use myVec.set(float)
instead to set all three values to the same float value
/ all instances of functions named *Vertexes have been changed to *Vertices
/ ofVec3f: removed default argument for z component in 3 value constructor
## OpenGL
- removed unused ofCheckGLTypesEqual(int, int)
/ ofLight::customDraw(): fixed bug
ofFbo:
/ fixed FBO error when trying to retain depth texture
/ cleanup and bugfixes for both iOS and desktop
/ fixed bug where ofFbo was broken on systems that did not support MSAA
ofTexture:
+ added setUseExternalTextureID for setting external Texture ID which will not be released by ofTexture,
was causing crashes for people trying to use external texture ids
/ can now read to pixels from depth buffers
/ added depth texture to image type support for OpenGL ES
ofVboMesh
+ added enabled/disable of flags for colors, texCoords, indices, & normals
/ fixed problem when changing size to 0
/ fixed clearing of vbo buffers when mesh is reallocated to 0
## Sound
/ setPan() now works consistently (range is -1..1) over all objects that use sound
/ ofOpenALSoundPlayer: fix for stopThread with no arguments
/ ofSoundPlayer::loadSound() now properly returns a bool when it succeeds or fails
## Types
/ ofPixels: fixes to channel count in OF_PIXELS_RGBA
ofRectangle:
+ added getters and setters for x , y, width, & height
+ added methods for working with lines, translation, & scaling
+ edge x/y locations can now be called by their "anchor" name (ofAlignHorz and ofAlignVert)
using getHorzAnchor() and getVertAnchor()
+ calling standardize() on a given ofRectangle will adjust the x / y position to make both
the width / height to greater than zero
+ added a + operator, which is equivalent to calling translate(ofPoint ...)
- removed getAsPolyline() and growToInclude()
/ x & y vars are now references to an underlying ofPoint, you can get a reference to
the underlying ofPoint via getPositionRef()
ofColor:
/ fixes to reading from byte streams
/ fixes to setHsb for ofFloatColor and ofShortColor
## Utils
+ added deprecation mechanism: compile-time warnings tell you if you are using legacy/old functions,
alternatives are mentioned where appropriate
+ ofSystemTextDialog
+ ofToString: added float formatting args
+ ofThread: added getter for poco thread
/ ofLog messages are significantly shorter
/ ofToDataPath() bugfixes
/ ofToString(value,int,int,char) now unambiguous
/ ofToHex(): fixed incorrect return value for non-ascii input
/ ofGetModifierPressed(): fixes to getting whether modifier keys are pressed
/ ofGetElapsedTimeMillis(): fixes to time counter functions, and increased accuracy
/ ofFileUtils: fixed comparison operators
/ ofThread: stopThread() fix
/ ofBuffer: set and operator= from string + append method
/ ofLaunchBrowser: now accepts https URLs
/ ofPtr: extended facade to allow for dynamic_pointer_cast
ofConstants:
+ added ofAlignVert & ofAlignHorz enums based on Qt,
could be combined into a single bit-wise combined alignment flag
+ added ofAspectRatioMode enum, describes how an aspect ratio is preserved (or not) during scaling operations,
can be combined with ofAlignVert and ofAlignHorz to describe a rectangular scaling operation
+ added ofScaleMode enum, represents a set of common scaling modes where each scaling mode can also be
described by a specific combination of ofAspectRatioMode, an ofAlignVert, and an ofAlignHorz
making ofScaleMode makes common scaling operations less verbose
ofURLFileLoader:
/ now catches all exceptions
/ fixed issue with ofRemoveRequest if ofURLFileLoader currently loading the request
## Video
/ solved dropped frame bug on setFrame
/ fixed createMovieFromURL
/ fixed problem when reloading movies
/ fixed setTexture(true) (allocates texture if it wasn't already allocated)
/ fixes to GStreamer streaming and initialization, squash unnecessary re-init on stop
ofVideoPlayer:
+ added functionality to load video from a URL
+ added movie path variable and getter
/ setVolume changed to take a float 0..1 with a warning message on out-of-range
/ updated to handle pixel formats more optimally
ofVideoGrabber:
/ switched to 24RGB pixel format to avoid manual conversion
/ now allows up to 24 cameras on Windows
PLATFORM SPECIFIC
=================
## Android
+ ofSystemTextAlert: added android version
+ ofSoundPlayer: implemented multiplay and streaming
/ Makefile now includes ofVideoPlayer
/ Eclipse project: update android target to use Android toolchain
/ updated setPixelFormat and getPixelFormat
/ updated OpenCV library
/ no more modal dialogs, were causing problems with gui thread
/ ofSoundPlayer: resource usage and bug fixes
/ updates Hardware Key handling to use characters instead of keycodes
ofAndroidLib:
+ added support for touchCancelled and swipe
/ updated to the latest Android SDK R20 and Android-NDK-R8B
/ updated minimum SDK level to 8 or Android 2.2
/ multitouch now supports 10+ pointers
ofxAndroid:
+ added listAlert
+ added network alerts
+ added ofxAndroidEvents
/ no longer crashes on 4.0.4 and 4.1.1 devices
/ updates to fix paths to external storage
/ ofThread now registers pthreads through JNI
ofAppAndroidWindow:
/ no longer crashes when returning from onPause()
/ fix for non-threaded mouse events
/ java side is already checking resume is not called on start
## Mac OS X
/ OpenFrameworks now works "out of the box" on 10.7+ by using QTKit for video grabbing & playback,
/ If compiling with the 10.6 SDK, the old Quicktime framework based players and grabbers are still included
ofVideoPlayer:
/ uses Core Video and QTKit internally
+ added support for getCurrentFrame() and setFrame() on videos with non-static framerates
+ added support for more codecs through QTKit framework
+ added support for direct-to-texture video rendering
+ added option to enabled asynchronous seeking for non-blocking calls to setFrame()
ofVideoGrabber:
/ uses Core Video and QTKit internally
+ added ability to record videos to disk
+ added support supports a wider range of video inputs, for example HDV over FireWire
- removed video setting dialog for 10.7+
## iOS
+ fixed/added antialiasing for iOS
+ added ofxiPhoneGetGLParentView() for accessing the GLView parent UIView,
this is now where other UIViews should be added to (was ofxiPhoneGetUIWindow()),
also fixes a bug where the native video player was not displaying correctly on first load
+ added EAGLViewDelegate for getting state updates from EAGLView, also added a destroy method
+ added ofxiOSExtensions giving access to functions for reloading OpenGL textures,
called when a ofxiOSEAGLView is destroyed and another fresh ofxiOSEAGLView is created
+ added ofxiPhoneLaunchBrowser(string url) to ofxiPhoneExtras
- removed ofFmodSoundPlayer files from iOS+OF project which were causing compile issues with nightly builds
- removed ofxiPhoneSoundPlayer.mm, was never used
/ iOS Xcode project valid architecture is now set to armv6 armv7 by default
/ iOS+OFLib deployment target has been set to 4.0, the base supported version of iOS by OF
/ fixed buggy compiler error with iOS events
/ fixed create_package to not delete iOS libraries
/ ofiPhoneVideoPlayer and AVFoundationVideoPlayer rewritten / cleanedup
/ fixed AVPlayerItem crash on unloading video
/ glViewController is now set as the window's rootViewController,
this is a much nicer implementation than adding the glViewController's view to the window
/ fixed ofxiPhoneSendGLViewToFront() and ofxiPhoneSendGLViewToBack() to always work with the GLView superview
/ GLView is now brought to front using ofxiPhoneSendGLViewToFront()
/ ofImage::grabScreen fixed for iOS
/ ofxiPhoneScreenGrab: updated for retina display
/ isRetinaSupported() made more reliable
/ fixed accelerometer readings for devices with default landscape orientation (i.e. tablets)
/ EAGLView, ES1Renderer, and ES2Renderer now do not have any OF dependencies,
can now be used to setup openGL ES without OF (if not required)
/ ofOpenALSoundPlayer: safety fixes for iOS
ofAppiPhoneWindow:
+ enabling retina was ambiguous, method names are now more concise
+ added methods for disabling retina, depth, & anti-aliasing
/ isRetinaSupported() made more reliable
/ now accesses window position, size, and screen size from the ofxiOSEAGLView
ofxiOSEAGLView
+ ofxiOSEAGLView is the OF specific extension of EAGLView,
most of the logic from the ofxiPhoneViewController has been move into here,
it is now possible to create a ofxIOSEAGLView without the need for a ofxiPhoneViewController container
+ only accepts ofxiPhoneApp instead of ofBaseApp, this is more strict and safe
+ moved window size and position code from ofAppiPhoneWindow into ofxiOSEAGLView,
makes more sense for ofxiOSEAGLView to return these values and only recalculate them when
layoutSubviews() is called on a ofxiOSEAGLView resize
ofxiPhoneViewController:
+ now adds itself as a delegate when creating a glView,
this is handy to get glView callbacks when extending in another class
/ completely refactored to only create and set up the glView, now rotates the glView to the device orientation
## Linux
+ added new method for setting vsync
- removed unused FMOD scripts
/ ofOpenALSoundPlayer: bugfixes for Linux
## Windows
+ added readme for Visual Studio
/ added missing elif statement for MiniGW, changed the compiler from 4.4.3 to 4.6
/ ofSystemAlertBoxDialog: fixed for VS2010 and CB Windows
/ updated to Fmod 4.4
/ ofSystemUtils: fix windows dialog
/ ofUtils: fixed VS2010 compilation and dynamic shared pointer casting
CORE ADDONS
============
- removed ofAddons.h
/ ofxOsc: install.xml brought up to date
/ ofxOpenCV: partially fixed OpenCV runtime errors with MiniGW - needs newer GCC for proper fix
/ ofxXmlSettings::setValue() fixed truncated floating point arguments bug introduced in 007
/ ofxXmlSettings: increased precision when saving double values
PROJECT GENERATOR
==================
/ updated project generator template to include QTKit and CoreVideo frameworks on Mac OS X
EXAMPLES
=========
+ added rectangleAlignmentAndScaling example: demonstrates all of the new ofRectangle alignment and scaling features
/ videoGrabber example: updated with comments about legacy video settings and info on how to enable alpha movies
/ asciiVideo example: cleaned-up and clarified, now uses OF convenience functions for lightness and charToString conversion
/ shader example: fixed for ATI cards
/ fixed billboard and pointsAsTextures examples
/ updated easyCam example, now explains the reimplementation of ofEasyCam in greater detail
## Mac
+ added osxVideoRecorder example demonstrating recording videos to disk on Mac OS X using the ofQTKitGrabber
+ added osxHighPerformanceVideoPlayer demonstrating accelerated playback of HD videos on OS X using the ofQTKitPlayer
## iOS
+ moviePlayer example: added video player volume
/ Mapkit example fixed
## Android
+ added OpenCVFace face tracking example
/ soundPlayer example: updated to show multiplay on Android
/ touch example: bug fixes
/ image example: updated to fix path to image in loadImage(FILE)
---------------------------------------------------------------
.oooo. .oooo. ooooooooo .o
d8P'`Y8b d8P'`Y8b d"""""""8' o888
888 888 888 888 .8' 888
888 888 888 888 .8' 888
888 888 888 888 .8' 888
`88b d88' `88b d88' .8' 888
`Y8bd8P' `Y8bd8P' .8' o888o
OF 0071, changelog:
key:
+ = added
- = subtracted
/ = modified
---------------------------------------------------------------
The main focus for 0071 was to add new examples to better show the features added in 007.
0071 is mainly an 'examples + bug fixes' release, with some additional, much needed, updating to the mobile releases ( iOS and Android ).
Critical changes ( might need to update your projects to fix )
* ofEvents -> ofEvents() singleton - this means that projects which register calls using "ofEvents." will need to replace these with "ofEvents()." (note the parentheses).
* OF Examples now are found in the "examples/" folder in the root of the OF folder. The "apps/" is still included but is kept empty as a place to put your OF apps and experiments.
* Because of the project generator (see below) some addons have been standardized, and we've added "addons.make" to each project file that uses addons. Prior to this release, addons.make was only used on linux / android platforms. As we develop the project generator, we'll work to document these changes.
* audioRequested and audioReceived on the ofBaseApp/testApp are now called audioOut and audioIn
Project generator
A significant amount of the work which went into 0071 was in the development of a Project Generator. The Project Generator can make project files for all the OF platforms and it was critical to have this in order to increase the number of examples we could include with the release. The Project Generator is also able to add addons to existing projects, making the task of adding addons much faster than the current manual approach. Going forward, the Project Generator will be included with the new releases and be a key tool for generating, modifying and updating your OF projects. Currently, the Project Generator is in our github repository (https://github.com/openframeworks/openFrameworks) in apps/devApps/.
core:
+ loads of new examples! 96 examples now come with the desktop releases of OF. For a full list see: https://gist.github.com/2836913
platform specific:
+ android support for front camera
+ android support for ofSoundPlayer
+ new iOS examples showing how to mix OF with Native Apps
/ android compatibility with ndk r7+ and lots of bugfixes
/ loads of iOS bugfixes - including retina issue, FBO issues, native GUI fixes, video fixes.
/ XCode fix to avoid constant rebuild of projects
/ Some MacOS 10.7 fixes ( ofShowCursor / HideCursor )
/ Better compatiblity with XCode 4
/ linux: createProjects.py script dropped in favor of command line version of the projectGenerator
utils:
+ implemented getUserHomeDir() for Windows
/ ofSystemSaveFileDialog fix for linux
/ ofFile and ofDirectory fixes for overwrite failing.
/ ofThread now uses Poco::Thread
/ bugfix for ofFile::copyFromTo
/ makefiles now are modular + ensure compatibility with future versions
addons:
+ OSC allows multiple binds to the same port and support for multicast / unicast
/ Loads of ofxOpenCV fixes to prevent crashing when images are not allocated or the wrong size
library changes:
/ OpenCv library in the ofxOpenCv addon updated to version 2.3.1
/ Poco library updated to version 1.4.3
3d:
+ ofDrawGrid() for showing an multi-axis xyz grid, ofDrawGridPlane() for a single plane
+ ofDrawArrow() for lines with arrow heads (using ofCone())
+ ofCone() for draw cone primitives
+ 3D versions of ofCurve(), ofBezier(), ofVertex() and ofBezierVertex().
+ ofMesh now allows you to explicitly enable/disable colors/textures/normals before drawing using ofMesh::[enable/disable][Colors/Textures/Normals]()
+ ofxAssimpModelLoader utility methods
/ faster ofSphere() without GLUT dependancies.
math:
+ ofQuaternion::normalize()
+ ofTexture/ofImage::drawSubsection() for drawing portions of images
+ ofBackgroundGradient() for gradient app backgrounds, with OF_GRADIENT_CIRCULAR, OF_GRADIENT_LINEAR, OF_GRADIENT_BAR
+ ofPolyline::getCentroid2D() and ofPolyline::getArea()
/ fix mismatch between * and *= operators for ofMatrix3x3. Implemented separate hadamard/schur product ofMatrix3x3::entrywiseTimes()
/ modify ofMatrix4x4::getRotate() method to operate on a scale-invariant version of the matrix
Graphics:
/ ofColor fixes for HSB color wrapping
/ ofPixels optimizations for swapRGB() and mirror() and rotate()
/ ofPolyline::getSmoothed() works with open and closed lines
app:
+ ofAppGlutWindow::setDoubleBuffering() gets rid of flickering when drawing without clearing. use this in your main.cpp instead of just saying ofSetBackgroundAuto(false)
openGL:
+ ofFbo added option to have the depth/stencil buffer as a texture
/ ofFbo lots of fixes for iOS and POT textures
communication:
/ ofSerial bugfixes
sound:
+ ofSoundStream allow for different input and output devices.
For a full list of commits for 0071 see: https://gist.github.com/2836647
---------------------------------------------------------------
0000 0000 7777777777777777/========___________
00000000 00000000 7777^^^^^^^7777/ || || ___________
000 000 000 000 777 7777/=========//
000 000 000 000 7777// (( //
0000 0000 0000 0000 7777// \\ //
0000 0000 0000 0000 7777//========//
0000 0000 0000 0000 7777
0000 0000 0000 0000 7777
000 000 000 000 7777
000 000 000 000 77777
00000000 00000000 7777777
0000 0000 777777777
OF 007, changelog:
key:
+ = added
- = subtracted
/ = modified
---------------------------------------------------------------
This is the biggest release yet. There are a ton of changes. The 0062 core was 624KB over 49 files. The 007 core is 1.12MB, 148 files. In other words, the core of OF has basically doubled.
Some of the favorite changes to OF include:
* PDF and SVG export with cairo
* ofMesh, ofPolyline utils and ofPath tessellation
* advanced ofColor support, like fromHex() and fromHsb()
* web-based resource and image loading
* advanced ofPixels power like getColor(x, y)
* the new Assimp addon
* advanced logging capabilities
* the ofPtr shared pointer, and shallow copy semantics: it's now safe to copy ofTexture
* moving ofxVectorMath, ofxDirList, ofxThread, and the previously unofficial ofxShader, ofxFbo, ofxVbo all into the core
Here's a fairly complete list of the changes.
core changes
+ drag and drop support in applications (except in linux)
+ ofPtr for shared pointers, is actually std::tr1::shared_ptr and will be std::shared_ptr when c++11 is supported
/ ofVideoGrabber, ofVideoPlayer, ofSoundPlayer and ofSoundStream use "swappable apis". so does rendering, which means you can use cairo and output to PDFs or SVG for 2d and 3d.
/ new fps counting technique that works a little better across platforms
/ ofApp*Window have been refactored so now all the common functionality is in ofEvents which makes easier to create new windows and maintain the current ones
/ easier registering of core events with the new ofRegister*Events functions
/ all the classes with opengl resources have shallow copy + shared pointer semantics so textureA = textureB makes textureB point to the same texture in the graphics card as textureA, and the texture is released when the last copy is destroyed
/ all swappable api objects (ofVideoGrabber, ofVideoPlayer, ofSoundPlayer and ofSoundStream) have shallow copy + shared pointer semantics too
/ all memory structures (ofPixels, ofImage, ofBuffer, ofMesh...) have deep copy semantics, so pixelsA = pixelsB makes b a full new copy of pixelsA
/ Poco library is changed from 1.3.3 to 1.4
video and cv
+ ofxCvHaarFinder is brought into the core ofxOpenCv addon
/ openCV is updated to 2.2
/ better gstreamer support on linux
2d
+ ofImage uses new web-based loading
+ ofPath and ofPolyline wraps all the 2d drawing functionality previously supported by OF, and adds more. ofPolyline has some new advanced methods like getResampledBySpacing(), getClosestPoint(), simplify()
+ ofSetOrientation() allows you to rotate the entire OF drawing space
+ ofPixels and ofImage have getColor() which returns an ofColor, and setColor(x,y,ofColor)
+ ofEnableBlendMode() supports additive, subtractive, alpha, etc. blending
+ ofColor has constants for 8 basic colors (cmy, rgb, bw), for example ofColor::magenta
+ ofColor finally adds HSB support. ofColor is always an RGB color, but you can get and set its hue, saturation and lightness via getHue()/setHue() etc. it also distinguishes lightness (value) from brightness. to create a color using HSB values, use ofColor::fromHsb(h,s,b,a). to set from hex, use ofColor::fromHex(hex)
/ ofColor, ofPixels and ofImage are now templated classes with support for 8bit, 16bit and 32bit and easy conversion between them using the = operator
/ ofDrawBitmapString() has been massively refactored to support all the different 3d drawing cases you can imagine via ofSetDrawBitmapMode()
/ ofPixels is now a fully-formed class that is used by a variety of classes
/ ofSetColor(int) is now interpreted as a grayscale value, ofSetHexColor(int) if you want to use hex values
/ ofTrueTypeFont, now generates a texture atlas when loading a font instead of a texture per char. It also has bind()/unbind() functions that allow to bind the texture only once to render several texts, making font rendering much faster.
/ ofTrueTypeFont getShapes uses ofPath
/ new ofTessellator class used internally in OF by ofPath and ofBegin/EndShape bassed on the tess2 library (with some modifications so it also works on openGL ES) which is faster and has a cleaner api than the previous one from GLU
3d
+ ofMesh, ofVbo and ofVboMesh provide a clean interface for drawing, and for gpu-accelerated drawing
+ ofNode is a new 3d node class with position and orientation that can be manipulated with methods like truck() and tilt()
+ ofCamera extends ofNode, is a new camera class for representing a camera position, orientation, and other parameters
+ ofEasyCam wraps ofCamera with automatic mouse binding that resembles processing's PeasyCam
+ ofLight also extends ofNode, provides a simple interface for placing and describing opengl lighting
+ ofBox and ofSphere draw the respective 3d shapes
+ multiple versions of ofxShader, ofxVbo and ofxFbo have been brought into the core as ofShader, ofVbo, and ofFbo
+ ofxAssimpModelLoader for loading a huge variety of 3d formats
utils
+ functions and classes to load resources from the web to memory, or save to disk. using HTTP, either synchronously and asynchronously: ofSaveURLTo(), ofSaveURLAsync()
+ added the ofxThreadedImageLoader addon
+ cross-platform file dialog and alert dialog, ofSystemAlertDialog(), ofSystemLoadDialog(), ofSystemSaveDialog()
+ a ton of conversion methods have been added: ofToHex, ofToBinary, ofToString, ofHexToInt, ofHexToFloat, etc. they're all inside ofUtils.h
+ ofFile and ofBuffer have also been added for working with the filesystem
/ the core addons ofxVectorMath, ofxThread, and ofxDirList have been turned into ofVectorMath, ofThread and ofDirectory
/ new logging system with support for << operator, for example: ofLogVerbose() << "some message", logging to file and logging channels which makes it easier to redirect the logging output
sound
+ working towards a sound synthesis addon, ofxSynth
/ slowly transitioning away from fmod toward openal for sound support
/ ofSoundStream has been converted to an object oriented api, and now is possible to open several devices and choose which device you want to use.
- FMOD is removed on linux, so there are no dependencies with any non-free library
mobile
+ android support
/ better iPhone video and camera support
---------------------------------------------------------------
.oooo. .oooo. .ooo .oooo.
d8P'`Y8b d8P'`Y8b .88' .dP""Y88b
888 888 888 888 d88' ]8P'
888 888 888 888 d888P"Ybo. .d8P'
888 888 888 888 Y88[ ]88 .dP'
`88b d88' `88b d88' `Y88 88P .oP .o
`Y8bd8P' `Y8bd8P' `88bod8' 8888888888
OF 0062 Pre-release, changelog:
key:
+ = added
- = subtracted
/ = modified
---------------------------------------------------------------
This is mostly minor changes, as it's a maintenance release with small bug fixes a few extra features and critical updates for Visual Studio 2010, Linux and iPhone developers.
/ altered framerate calculation
/ altered data path, adding ofSetDataPathRoot for OSX
/ ofSerial - bug fixes, including EAGAIN
+ added touchEvents
/ ofDrawBitMapString - added openglES compatible mode
+ ofGraphics - added universal functions to help control textures, such as "ofEnableNormalizedTexCoords()"
+ ofImage - setCompression code via SoSoLimited
+ ofTexture - added compression options, via SoSoLimited
/ ofSoundStream - bug fixes for audio clearning
/ ofConstants - switch some includes, for example, from <stdio.h> to <cstdio>
+ ofMath - added some functions to help with angle math, such as ofLerpDegrees, and ofAngleDifferenceDegrees
+ ofMath - added some polygon / polyline / line methods, such as ofInsidePoly and ofLineSegmentIntersection
+ ofMath - added curve functions, ofBezierPoint, ofBezierTangent, ofCurvePoint, ofCurveTangent
+ ofTypes - added functionality to ofRectangle, added [] options for ofColor
- ofTypes - removed getPixels() from ofBaseVideo, as is was unnecessary
+ ofUtils - new ofSetDataPathRoot code for OSX, changes to ofToDataPath
---------------------------------------------------------------
::::::: ::::::: :::::::: :::
:+: :+: :+: :+: :+: :+: :+:+:
+:+ +:+ +:+ +:+ +:+ +:+
+#+ +:+ +#+ +:+ +#++:++#+ +#+
+#+ +#+ +#+ +#+ +#+ +#+ +#+
#+# #+# #+# #+# #+# #+# #+#
####### ####### ######## #######
OF 0061 Pre-release, changelog:
key:
+ = added
- = subtracted
/ = modified
---------------------------------------------------------------
major changes:
- In this release we've moved to a *compiled* openFrameworks library as opposed to un-compiled. a few motivations: cutting down on directory size of OF, reducing redundant compiles, making compile times faster and making development of OF easier. This changes quite a bit the organization of projects but it should lead to a much easier to use and maintain OF.
- we've moved from svn to git / github, and now have an automated system of building the OF package. This should also greatly ease our development of openFrameworks. Before we had separate SVNs for the OF lib, the OF examples, and the core addons. Now, we've got one major place where changes and development of OF can be tracked. see http://github.com/openFrameworks/openFrameworks.
- To encourage faster releases, we've moved to a major / minor release schedule, with minor releases (0061, 0062) relating to bug fixes and major releases (007, 008) relating to major features.
core:
/ folder structure is now changed so that all ide/packages can share one directory structure. Download the 0061 all release to check it out.
- core addons now don't have libs from other platforms
- core addons now don't have example project in the addons folder
/ core FreeImage.h -> move BOOL typedefs etc to #defines and do #undef at the end
+ Put MIT license in OF headers
OSX:
+ xcode has snow leopard fixes, and an SL release
/ xcode projects are now renamed to have the folder name (ie, every project has a unique target name)
/ xcode apps now have max optimization settings for release.
+ xcode now has 3 build modes, Debug, Release, Release Universal. Debug and Release are for your current platform (either intel or PPC), Release Universal is for both.
/ renamed libs - change all libSomething.a to be something.a - this prevents xcode linking to root level dynamic libraries.
Win32 CodeBlocks:
+ added Poco linker flag for CB - needed for some network calls
/ fixed Poco linking order on win32.
linux:
+ changed the linux default videograbber to gstreamer
- remove ofV4lUtils
/ smarter makefiles
/ modified install scripts to fix karmic problems & build OF compile on install
examples:
/ fixed missing files, missing calls to windowResized, removed unnecessary calls to ofSetupSCreen() and include stdio.
app:
/ Fullscreen on OS X is not top level anymore (no more crazy fullscreen app crashes and can't escape).
/ OSX now using custom GLUT framework
/ ofSetBackgroundAuto(false) on windows OF now works for accumulation in both windowed and fullscreen mode.
/ Windows FPS issues have been fixed.
/ closing the window on PC now exits the application properly.
/ ofAppGlutWindow - frameRate is now set to 60.0 at the start - before it was un-initialized.
+ ofGetLastFrameTime - to get the elapsed time of the last frame.
/ fixes for ofGetWidth() & ofGetHeight() being super slow, we now store them in vars and change on windowResize
+ ofGetAppPtr(), returns a pointer to the baseApp.
+ glutInitDisplayString option for initializing glut with a unique string, useful for FSAA or altering the setup.
/ fixed vertical sync for linux: http://www.openframeworks/forum/viewtopic.php?f=7&t=561&p=10683#p10683
+ ofBaseVideo added isFrameNew()
utils:
+ ofxNoise / ofxSignedNoise - Added simplex ( similar to perlin ) noise to core
+ ofBaseHasTexture now has ofSetUseTexture ( to enable / disable use of the texture )
+ ofBaseImage and ofBaseVideo have the same inheritance base
/ ofMap - now has a clamp argument, defaults to false
/ ofMap - added kyle's solution for division by 0 in ofMap: http://www.openframeworks/forum/viewtopic.php?f=6&t=1413&view=unread#unread
/ detect C:/ as a root path in ofToDataPath
/ fixed ofPoint warnings
events:
/ fixed vs2008 intellisense doesn't like using Poco::delegate; in ofEventUtils: http://www.openframeworks/forum/viewtopic.php?f=9&t=1877
graphics:
/ ofImage - Loading a corrupted image in linux made the app crash, fixed now.
/ ofImage setImageType now should properly alter the texture if we need to.
+ ofTexture - get texPoint / texPercent, should help for doing texCoordinate stuff without knowing the target of the texture (ie, RECTANGLE_2D or ARB)
+ ofTexture - setTextureWrap & setMinMagFilters
+ ofTexture - ofTexture float *, char *, short * -- added ability to make floating point textures, or upload float data.
/ ofTrueTypeFont - fixed TTF mem leak - http://www.openframeworks/forum/viewtopic.php?p=10178&#p10178
/ ofImage fixed resize color bug
/ ofImage inline functions cause problems with inhereited classes that want to use them in CB. Switch inline -> static fixes this issue.
/ ofGraphics - numCirclePts was being stored on ofPushStyle but not used, fixed now.
/ ofTrueTypeFont - Xcode projects now use the same version of the freetype as win/linux
+ ofSetCurveResolution - makes curved shapes a lot faster!
/ setAnchorPoint - move arguments from int to float
communication:
/ merged ofStandardFirmata into ofArduino, and removed ofStandardFirmata files from all projects.
/ fixed Linux serial issues with device number.
/ fixed firmata connect inconsistency: http://www.openframeworks/forum/viewtopic.php?t=1765
/ serial enumerateDevices is doing ofLog so not always printing out: http://www.openframeworks/forum/posting.php?mode=reply&f=6&t=1860
/ fix for ofArduino: http://www.openframeworks/forum/viewtopic.php?f=8&t=3042&p=16425#p16425
video:
+ add setFrameRate for ofVideoGrabber
/ update the quicktime settings dialog so that PS3 eye panel shows up.
/ ofVideoPlayer and ofVideoGrabber on OS X Intel now using k24RGBPixelFormat - this has a huge speed improvement.
/ ofVideoGrabber on mac seems to not list devices unless log level is verbose http://www.openframeworks/forum/viewtopic.php?f=9&t=1799&view=unread#unread
/ ofVideoPlayer uninitialized bool
/ ofVideoPlayer - pause delay
/ ofUCUtils - PIX_FMT_YUV422 won't exist anymore on future ffmpeg versions
/ ofUCUtils - sws_getContext needs PixFmt as parameter instead of int since karmic
sound:
/ updated ofSoundStream to use rtAudio 4
+ Add a ofSoundPlayerUpdate call - for keeping fmod on track - should be called once per frame to make sure sounds don't drop out.
addons:
/ ofxXmlSettings fixed a printf(tag.c_str()) that xcode complained about
/ ofxXmlSettings memory leak
/ ofxXmlSettings read attributes
/ ofxXmlSettings read from string / save to string
ofxVectorGraphics:
+ Update to CreEPS 2.0 - has MIT license and new features.
ofxOpenCv:
+ ofxCvColorImage - convertToPlanarImage(...) for one channel (ie, grabbing just sautration)
/ ofxCvShortImage - fixed assignment operators
+ ofxCvGrayscaleImage - add brightness / contrast to grayscale image
/ ofxCvContourFinder converts centroid to ints
/ ofxOpenCv - fixed grayscale to planar / planar to grayscale conversions
- ofxOpenCv - remove implicit ROI intersection
+ ofxCvImage - re-added drawBlobIntoMe() for painting a blob into an ofxCvImage
+ ofxOpenCv - added appropriate iphone #ifdefs
/ ofxOpenCv - do quicker copy for getPixels and setPixels when image is memory alligned already.
/ ofxOpenCv scale conversions for floatImage
/ ofxOpenCv swapTemp bug
ofxOsc:
/ ofxOsc - shutdown leak
/ ofxOsc - memory leak
/ ofxOsc - Shutdown issue - fix here: http://damian.dreamhosters.com/svn/public/ofxOsc/latest/
ofxThread
/ stopThread now called when threaded function returns
ofxVectorMath
/ went back to inlining, for performance
+ added ofxMatrx4x4 and ofxQuaternion
/ ofxPoin2/3/4f deprecated merged with ofxVec2/3/4f
ofxNetwork:
/ fixed for xcode needs tcp.h included in ofxUdpManager
---------------------------------------------------------------
.oooo. .oooo. .ooo
d8P'`Y8b d8P'`Y8b .88'
888 888 888 888 d88'
888 888 888 888 d888P"Ybo.
888 888 888 888 Y88[ ]88
`88b d88' `88b d88' `Y88 88P
`Y8bd8P' `Y8bd8P' `88bod8'
OF 006 Pre-release, changelog:
key:
+ = added
- = subtracted
/ = modified
---------------------------------------------------------------
major changes:
-- in this release we've added another library Poco, v 1.3.3 ( http://pocoproject.org ),
just now only used for events but is included in the core available for addons like ofxHttpUtils.