Animation Gadget - last update Dec30 2013

Share your advanced PureBasic knowledge/code with the community.
User avatar
netmaestro
PureBasic Bullfrog
PureBasic Bullfrog
Posts: 8451
Joined: Wed Jul 06, 2005 5:42 am
Location: Fort Nelson, BC, Canada

Re: Animation Gadget - last update Dec 19

Post by netmaestro »

It should be possible but not directly with copy/paste. You'd choose 'copy shortcut' from the webpage and paste that to the gadget. Then the gadget would download the file to a buffer and decode/play it. I'm not quite there yet though, still trying to make modifications to put Mac OS X back on the masthead.
BERESHEIT
User avatar
ts-soft
Always Here
Always Here
Posts: 5756
Joined: Thu Jun 24, 2004 2:44 pm
Location: Berlin - Germany

Re: Animation Gadget - last update Dec 19

Post by ts-soft »

:D great stuff

but works only on windows. on linux comes a IMA at line 682 "w=*this\containerwidth" (Pointer is Null)?

greetings - thomas
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.
Image
User avatar
Kwai chang caine
Always Here
Always Here
Posts: 5494
Joined: Sun Nov 05, 2006 11:42 pm
Location: Lyon - France

Re: Animation Gadget - last update Dec 19

Post by Kwai chang caine »

Thanks for your answer 8)
I'm not quite there yet though, still trying to make modifications to put Mac OS X back on the masthead.
No problem, it's not huried, after all...i wait your code and Wilbert code since so much years :D
And the reverse, read the gif in memory with PB, and put it in clipboard, i don't know if it's also hard ??
But if a day you have the time...manage the clipboard will be so usefull 8)

Again thanks for your giant works at you two 8)
ImageThe happiness is a road...
Not a destination
User avatar
netmaestro
PureBasic Bullfrog
PureBasic Bullfrog
Posts: 8451
Joined: Wed Jul 06, 2005 5:42 am
Location: Fort Nelson, BC, Canada

Re: Animation Gadget - last update Dec 20

Post by netmaestro »

New update today, I hope this version will work on Mac. If someone could test, it would be appreciated :mrgreen:
BERESHEIT
Poshu
Enthusiast
Enthusiast
Posts: 459
Joined: Tue Jan 25, 2005 7:01 pm
Location: Canada

Re: Animation Gadget - last update Dec 20

Post by Poshu »

Sadly, on my mac book pro retina with maverick:
Process: PureBasic.1 [1667]
Path: /tmp/PureBasic.1.app/Contents/MacOS/PureBasic.1
Identifier: PureBasic.1
Version: 0.1
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: PureBasic [992]
User ID: 501

Date/Time: 2013-12-21 13:11:47.255 -0500
OS Version: Mac OS X 10.9.1 (13B3116)
Report Version: 11
Anonymous UUID: 3CCD7289-D4BA-724F-B273-B779D99C6C26

Sleep/Wake UUID: 8F16F801-17F4-426A-A341-314CB8CE8B7A

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000010

VM Regions Near 0x10:
-->
__TEXT 0000000100000000-0000000100024000 [ 144K] r-x/rwx SM=COW /tmp/PureBasic.1.app/Contents/MacOS/PureBasic.1

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 PureBasic.1 0x0000000100001f3c 0x100000000 + 7996

Thread 1:
0 libsystem_kernel.dylib 0x00007fff88a17e6a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff889f2f08 _pthread_wqthread + 330
2 libsystem_pthread.dylib 0x00007fff889f5fb9 start_wqthread + 13

Thread 2:: Dispatch queue: com.apple.libdispatch-manager
0 libsystem_kernel.dylib 0x00007fff88a18662 kevent64 + 10
1 libdispatch.dylib 0x00007fff910c243d _dispatch_mgr_invoke + 239
2 libdispatch.dylib 0x00007fff910c2152 _dispatch_mgr_thread + 52

Thread 3:
0 libsystem_kernel.dylib 0x00007fff88a17e6a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff889f2f08 _pthread_wqthread + 330
2 libsystem_pthread.dylib 0x00007fff889f5fb9 start_wqthread + 13

Thread 4:
0 libsystem_kernel.dylib 0x00007fff88a17e6a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff889f2f08 _pthread_wqthread + 330
2 libsystem_pthread.dylib 0x00007fff889f5fb9 start_wqthread + 13

Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x0000000000000000 rcx: 0x00000000000fc080 rdx: 0x00000000000d8bd0
rdi: 0x0000000000000104 rsi: 0x0000000000410001 rbp: 0x0000000000000000 rsp: 0x00007fff5fbffca0
r8: 0x00000001004100d0 r9: 0x000000010041fdc0 r10: 0x0000000093767b7d r11: 0x00000000f7521e5a
r12: 0x0000000000000000 r13: 0x0000000000000000 r14: 0x0000000000000000 r15: 0x0000000000000000
rip: 0x0000000100001f3c rfl: 0x0000000000010202 cr2: 0x0000000000000010

Logical CPU: 2
Error Code: 0x00000004
Trap Number: 14


Binary Images:
0x100000000 - 0x100023ff7 +PureBasic.1 (0.1) <30F111DB-BA1B-3B6D-A5FB-07B321CB95BD> /tmp/PureBasic.1.app/Contents/MacOS/PureBasic.1
0x100383000 - 0x10038bff3 libCGCMS.A.dylib (599.7) <92AA4E85-7633-36E2-BAD0-7B1A2E48E75C> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGCMS.A.dylib
0x100393000 - 0x1003bbffb libRIP.A.dylib (599.7) <F1214A73-9E1C-313E-8F69-A43C9D3CBC1C> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib
0x1003da000 - 0x1003ddffa libCGXType.A.dylib (599.7) <2FC9C2BC-B5C5-3C27-93F9-51C6C4512E9D> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGXType.A.dylib
0x7fff68fec000 - 0x7fff6901f817 dyld (239.3) <D1DFCF3F-0B0C-332A-BCC0-87A851B570FF> /usr/lib/dyld
0x7fff86c63000 - 0x7fff86ce3fff com.apple.CoreSymbolication (3.0 - 141) <37087FDB-874D-3FE2-9874-B047CC9BE910> /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication
0x7fff86ce4000 - 0x7fff86ce6fff libCVMSPluginSupport.dylib (9.3.1) <7858AEA7-EE20-3BF7-9995-3F58C5C3970C> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
0x7fff86ce7000 - 0x7fff86ceafff com.apple.TCC (1.0 - 1) <F25B5875-081A-3877-B70E-374D54B54C5F> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
0x7fff86d98000 - 0x7fff86db4fff libresolv.9.dylib (54) <11C2C826-F1C6-39C6-B4E8-6E0C41D4FA95> /usr/lib/libresolv.9.dylib
0x7fff86e62000 - 0x7fff86ec5ff7 com.apple.SystemConfiguration (1.13 - 1.13) <F05F4149-981B-380B-8F50-51CE804BBB89> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
0x7fff8760f000 - 0x7fff87612ffc com.apple.IOSurface (91 - 91) <812F4D48-6FD4-3DCB-8691-B077EBF981D7> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
0x7fff87754000 - 0x7fff8781ffff libvDSP.dylib (423.32) <3BF732BE-DDE0-38EB-8C54-E4E3C64F77A7> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
0x7fff87820000 - 0x7fff87821fff libunc.dylib (28) <C3737C9A-C06F-310C-B78C-7D8D882A35DE> /usr/lib/system/libunc.dylib
0x7fff87822000 - 0x7fff87886ff3 com.apple.datadetectorscore (5.0 - 354.0) <25525311-E3A2-3D06-9010-DDB12A936E88> /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
0x7fff87887000 - 0x7fff87887fff com.apple.ApplicationServices (48 - 48) <F250170A-8805-3731-9097-78CAD04481F0> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
0x7fff87888000 - 0x7fff8788cfff libsystem_stats.dylib (93.50.1) <EBC4B8DB-7C2B-35DE-B865-34FE11AF3B1B> /usr/lib/system/libsystem_stats.dylib
0x7fff8788d000 - 0x7fff8788fff7 libquarantine.dylib (71) <973BE51D-6465-392F-9099-D4AB21BF0D25> /usr/lib/system/libquarantine.dylib
0x7fff878cb000 - 0x7fff878d5fff libcommonCrypto.dylib (60049) <79B8E80F-E596-3302-8243-EC479B9546CA> /usr/lib/system/libcommonCrypto.dylib
0x7fff878d6000 - 0x7fff87929fff com.apple.ScalableUserInterface (1.0 - 1) <19D73C6D-CA0A-3230-9644-7F01364137ED> /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/ScalableUserInterface.framework/Versions/A/ScalableUserInterface
0x7fff87a9a000 - 0x7fff87aa7ff0 libbz2.1.0.dylib (29) <0B98AC35-B138-349C-8063-2B987A75D24C> /usr/lib/libbz2.1.0.dylib
0x7fff87aa8000 - 0x7fff87aa9fff com.apple.TrustEvaluationAgent (2.0 - 25) <334A82F4-4AE4-3719-A511-86D0B0723E2B> /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent
0x7fff87aaa000 - 0x7fff87bdaff7 com.apple.desktopservices (1.8 - 1.8) <B152EE07-235A-3997-ACC5-C31519C76F44> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
0x7fff87bf4000 - 0x7fff87c4fffb com.apple.AE (665.5 - 665.5) <3558CC9A-FD30-3DAD-AB40-FE6828E76FE1> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
0x7fff87c50000 - 0x7fff87d55fff com.apple.ImageIO.framework (3.3.0 - 1038) <355B8338-9DD8-3E2E-8758-E1C852403DEF> /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
0x7fff880dd000 - 0x7fff880deff7 com.apple.print.framework.Print (9.0 - 260) <C4C40E2E-6130-3D73-B1EF-97FF3F70CF2C> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
0x7fff880df000 - 0x7fff881cefff libFontParser.dylib (111.1) <835A8253-6AB9-3AAB-9CBF-171440DEC486> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
0x7fff881cf000 - 0x7fff881d6ff3 libcopyfile.dylib (103) <6453487A-EDA5-353C-8351-1AABB3C7777C> /usr/lib/system/libcopyfile.dylib
0x7fff88365000 - 0x7fff88798ffb com.apple.vision.FaceCore (3.0.0 - 3.0.0) <30FD8146-D6EB-3588-A7E5-ADC3110B3DCC> /System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore
0x7fff88799000 - 0x7fff88907ff7 libBLAS.dylib (1094.5) <D862E2B7-91FA-3704-8F62-C1B65D381A84> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
0x7fff88936000 - 0x7fff88978ff7 libauto.dylib (185.5) <F45C36E8-B606-3886-B5B1-B6745E757CA8> /usr/lib/libauto.dylib
0x7fff889e7000 - 0x7fff889efff7 com.apple.speech.recognition.framework (4.2.4 - 4.2.4) <A816D8B1-6B7B-3E5B-9FAE-CBDA70192E7E> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
0x7fff889f0000 - 0x7fff889f7ff7 libsystem_pthread.dylib (53.1.4) <9DA50FD0-D9AC-3051-AD4B-BA0D745BC49C> /usr/lib/system/libsystem_pthread.dylib
0x7fff889f8000 - 0x7fff88a01ff3 libsystem_notify.dylib (121) <31F9FEF5-2897-328A-8441-B7BDFEDB10D4> /usr/lib/system/libsystem_notify.dylib
0x7fff88a02000 - 0x7fff88a1eff7 libsystem_kernel.dylib (2422.75.4) <F5C190DA-A845-3ADE-9B50-161A881BC136> /usr/lib/system/libsystem_kernel.dylib
0x7fff89500000 - 0x7fff89545ff6 com.apple.HIServices (1.22 - 466) <21807AF8-3BC7-32BB-AB96-7C35CB59D7F6> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
0x7fff89699000 - 0x7fff896b4ff7 libCRFSuite.dylib (34) <FFAE75FA-C54E-398B-AA97-18164CD9789D> /usr/lib/libCRFSuite.dylib
0x7fff89bc6000 - 0x7fff89bcdfff libcompiler_rt.dylib (35) <2A890004-0A78-3E33-9AC5-A7D63BD4F879> /usr/lib/system/libcompiler_rt.dylib
0x7fff89bf2000 - 0x7fff89bf2fff com.apple.Accelerate.vecLib (3.9 - vecLib 3.9) <F8D0CC77-98AC-3B58-9FE6-0C25421827B6> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
0x7fff89c2f000 - 0x7fff89cb8ff7 libsystem_c.dylib (997.1.1) <01F576D9-9718-3D99-A8EA-ACFD6CBBB51E> /usr/lib/system/libsystem_c.dylib
0x7fff89cbb000 - 0x7fff89cbfff7 libcache.dylib (62) <8C1EFC4F-3F51-3DE9-A973-360B461F3D65> /usr/lib/system/libcache.dylib
0x7fff89cec000 - 0x7fff89cecfff com.apple.CoreServices (59 - 59) <67A369BA-2326-383F-995B-853DAD7BFF43> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
0x7fff89ced000 - 0x7fff89cedffd com.apple.audio.units.AudioUnit (1.9 - 1.9) <E80678A4-32A1-3654-8040-88D434E36F01> /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
0x7fff8a1dc000 - 0x7fff8a1dfff7 libdyld.dylib (239.3) <1767060C-6E76-3149-B991-8FEA14B8352C> /usr/lib/system/libdyld.dylib
0x7fff8a3d1000 - 0x7fff8a440ff1 com.apple.ApplicationServices.ATS (360 - 363.1) <66592095-6947-39BE-9C25-9504CB48258D> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
0x7fff8a441000 - 0x7fff8a446fff com.apple.DiskArbitration (2.6 - 2.6) <AE84088D-C061-304C-B205-C9F56ECD23C7> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
0x7fff8a49f000 - 0x7fff8a4d7ff7 com.apple.RemoteViewServices (2.0 - 94) <B17FAA76-61DB-33D0-90B7-4117A72A2B28> /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices
0x7fff8a4d8000 - 0x7fff8a4ddff7 libunwind.dylib (35.3) <95D4D118-3368-3474-989D-271DE18C8365> /usr/lib/system/libunwind.dylib
0x7fff8a4de000 - 0x7fff8a7c8fff com.apple.CoreServices.CarbonCore (1077.14 - 1077.14) <B00BEB34-A9F5-381F-99FD-11E405768A9A> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
0x7fff8ae0c000 - 0x7fff8ae18ff3 com.apple.AppleFSCompression (56 - 1.0) <1EBCFC91-734D-338B-8796-4B93BDC53014> /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
0x7fff8aedb000 - 0x7fff8aee2ff7 liblaunch.dylib (842.1.4) <50B742D9-0C5C-3ABA-8EBF-3D447630932F> /usr/lib/system/liblaunch.dylib
0x7fff8aee3000 - 0x7fff8af3cfff libTIFF.dylib (1038) <965DD031-9246-3588-AC53-D284174F77FF> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
0x7fff8af3d000 - 0x7fff8af3dfff com.apple.Accelerate (1.9 - Accelerate 1.9) <CFEF9CBE-4A1A-33FD-9174-D44314BB28F3> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
0x7fff8b000000 - 0x7fff8b01bff7 libPng.dylib (1038) <08A42D4F-0320-3481-BD85-AFD95554F9DD> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
0x7fff8b01c000 - 0x7fff8b08fffb com.apple.securityfoundation (6.0 - 55122) <119D1C53-B292-3378-AEE1-A3B1FB02F43F> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
0x7fff8b090000 - 0x7fff8b174fff com.apple.coreui (2.1 - 231) <A7942BEE-E6BA-3A68-8EA0-57A8A9066B2D> /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
0x7fff8b175000 - 0x7fff8b1b6fff com.apple.PerformanceAnalysis (1.47 - 47) <784ED7B8-FAE4-36CE-8C76-B7D300316C9F> /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis
0x7fff8b1df000 - 0x7fff8b1dfff7 libkeymgr.dylib (28) <D7045F25-BFA4-3840-847D-AF95DF8B6CCA> /usr/lib/system/libkeymgr.dylib
0x7fff8b547000 - 0x7fff8b635fff libJP2.dylib (1038) <1DC18933-53D6-335A-AA84-0366C9ACDFD8> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
0x7fff8b636000 - 0x7fff8b65dff7 libsystem_network.dylib (241.3) <A499D688-9165-3776-8C8E-C018897B5B13> /usr/lib/system/libsystem_network.dylib
0x7fff8b6e3000 - 0x7fff8b6e3ffd libOpenScriptingUtil.dylib (157) <19F0E769-0989-3062-9AFB-8976E90E9759> /usr/lib/libOpenScriptingUtil.dylib
0x7fff8b7e0000 - 0x7fff8b7ecff7 com.apple.OpenDirectory (10.9 - 173.1.1) <6B78BD7B-5622-38E6-8FC6-86A117E3ACCA> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
0x7fff8b81c000 - 0x7fff8b96fff7 com.apple.audio.toolbox.AudioToolbox (1.9 - 1.9) <1659DBBF-92AA-3695-8ADE-CC115B01EFC4> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
0x7fff8b996000 - 0x7fff8b9a7ff7 libsystem_asl.dylib (217.1.4) <B983CA60-F418-317B-B142-48A6376564FC> /usr/lib/system/libsystem_asl.dylib
0x7fff8b9a8000 - 0x7fff8b9acff7 libheimdal-asn1.dylib (323.12) <063A01C2-E547-39D9-BB42-4CC8E64ADE70> /usr/lib/libheimdal-asn1.dylib
0x7fff8b9ad000 - 0x7fff8bc81fc7 com.apple.vImage (7.0 - 7.0) <1DDB8AB7-03D5-3D20-9D77-C69074C6FD26> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
0x7fff8bc94000 - 0x7fff8bca1fff com.apple.Sharing (132.2 - 132.2) <3DFB1133-8FD3-3B60-8E9C-0FE62AACFD7B> /System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing
0x7fff8bca2000 - 0x7fff8bd19fff com.apple.CoreServices.OSServices (600.4 - 600.4) <80E7B419-A0D5-373B-B2B5-88E6A8CD3AE6> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
0x7fff8bd1a000 - 0x7fff8bddcff1 com.apple.CoreText (352.0 - 367.15) <ACA9E85D-275D-3388-A2E3-1B15FD1A0A39> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
0x7fff8bfbe000 - 0x7fff8c00cfff com.apple.opencl (2.3.58 - 2.3.58) <D557EA35-12EA-304F-9B88-AEACA827A201> /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
0x7fff8c034000 - 0x7fff8c035ffb libremovefile.dylib (33) <26266E3F-FDDC-3CFC-B27F-78B49BDC9BDC> /usr/lib/system/libremovefile.dylib
0x7fff8c04c000 - 0x7fff8c05eff7 com.apple.MultitouchSupport.framework (245.13 - 245.13) <D5E7416D-45AB-3690-86C6-CC4B5FCEA2D2> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
0x7fff8c05f000 - 0x7fff8c150ff9 libiconv.2.dylib (41) <BB44B115-AC32-3877-A0ED-AEC6232A4563> /usr/lib/libiconv.2.dylib
0x7fff8c151000 - 0x7fff8c168fff com.apple.CFOpenDirectory (10.9 - 173.1.1) <3FB4D5FE-860B-3BDE-BAE2-3531D919EF10> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
0x7fff8c180000 - 0x7fff8c1cdff2 com.apple.print.framework.PrintCore (9.0 - 428) <A2F7B9D2-7907-31D8-8462-E2E2E7C3AF2E> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
0x7fff8c31f000 - 0x7fff8c328fff com.apple.speech.synthesis.framework (4.6.2 - 4.6.2) <0AAE45F0-FC6E-36B6-A6A7-73E6950A74AC> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
0x7fff8c375000 - 0x7fff8c3bcfff libFontRegistry.dylib (127) <401FA61F-4276-3296-9BFF-EC6EA7D7EDDE> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
0x7fff8c3cd000 - 0x7fff8c3fcfd2 libsystem_m.dylib (3047.16) <9D96AACD-5870-3A5C-B849-7F9C0F6EBB09> /usr/lib/system/libsystem_m.dylib
0x7fff8c4d9000 - 0x7fff8c7d8fff com.apple.Foundation (6.9 - 1056) <C59C6204-7259-3541-A131-A21DB3253373> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
0x7fff8c802000 - 0x7fff8c849ff7 libcups.2.dylib (372) <963E64F4-4318-3DFE-A59D-D74B3E857188> /usr/lib/libcups.2.dylib
0x7fff8c84e000 - 0x7fff8c8d7fff com.apple.ColorSync (4.9.0 - 4.9.0) <E7E0D542-D77A-3E32-B146-4D0FEAF282D3> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync
0x7fff8c904000 - 0x7fff8cbd2ff4 com.apple.CoreImage (9.0.54) <4D5D752E-A762-3EE5-9511-B956D0C945A2> /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/CoreImage.framework/Versions/A/CoreImage
0x7fff8cc4e000 - 0x7fff8cc4ffff liblangid.dylib (117) <9546E641-F730-3AB0-B3CD-E0E2FDD173D9> /usr/lib/liblangid.dylib
0x7fff8cc76000 - 0x7fff8cc9afff libxpc.dylib (300.1.17) <1BB4598D-19ED-3A31-AFD2-C90DD2652CFD> /usr/lib/system/libxpc.dylib
0x7fff8cc9b000 - 0x7fff8ccffff9 com.apple.Heimdal (4.0 - 2.0) <5113294E-B07E-3E42-8CE1-5E4AD4120C92> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
0x7fff8cd65000 - 0x7fff8cda4fff libGLU.dylib (9.3.1) <0E488DE5-4E77-3478-97DE-2D751EF990DC> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
0x7fff8ce41000 - 0x7fff8ce99ff7 com.apple.Symbolication (1.4 - 129) <16D42516-7B5E-357C-898A-FAA9EE7642B3> /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication
0x7fff8ce9a000 - 0x7fff8cea5fff libkxld.dylib (2422.75.4) <5448DCF9-721D-3B8C-AEFE-2A89477E82CF> /usr/lib/system/libkxld.dylib
0x7fff8d062000 - 0x7fff8d086ff7 libJPEG.dylib (1038) <F62F35B6-B350-3DF7-8815-5BECE32EBFCD> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
0x7fff8e11a000 - 0x7fff8e124ff7 com.apple.bsd.ServiceManagement (2.0 - 2.0) <9556885C-22DD-3392-ACCB-2B413434D8D3> /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement
0x7fff8e14d000 - 0x7fff8e14eff7 libsystem_blocks.dylib (63) <FB856CD1-2AEA-3907-8E9B-1E54B6827F82> /usr/lib/system/libsystem_blocks.dylib
0x7fff8e14f000 - 0x7fff8e18dff7 libGLImage.dylib (9.3.1) <B256429B-16DA-380C-907C-FDEA06DE8BA8> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
0x7fff8e1ea000 - 0x7fff8e219fff com.apple.DebugSymbols (106 - 106) <9F66640E-277C-317E-A01E-A1E5B13E2592> /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
0x7fff8e24b000 - 0x7fff8e285ff3 com.apple.bom (12.0 - 192) <9756CAB3-7802-38B0-80CF-3527D160E59F> /System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom
0x7fff8e286000 - 0x7fff8e287ff7 libSystem.B.dylib (1197.1.1) <A75BB8CD-CE51-3DF7-BCF4-8BDE25FA7F0C> /usr/lib/libSystem.B.dylib
0x7fff8e288000 - 0x7fff8e3f8ff6 com.apple.CFNetwork (673.0.3 - 673.0.3) <42CFC3DB-35C8-3652-AF37-4BCC73D8BDEF> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
0x7fff8e402000 - 0x7fff8e40affc libGFXShared.dylib (9.3.1) <1503C66D-9CE6-36C5-8669-2534776F371F> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
0x7fff8e5ae000 - 0x7fff8e5b2ff7 libGIF.dylib (1038) <F0B66751-0D4A-33B7-91C9-51B937B4D6D0> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
0x7fff8e5b3000 - 0x7fff8e5b5fff libRadiance.dylib (1038) <144F03D8-FA55-38A3-8A2D-4B4ABDB78B28> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
0x7fff8e5f4000 - 0x7fff8e619ff7 com.apple.CoreVideo (1.8 - 117.2) <FE12553A-9B5A-337E-92BD-EA8A8194C91A> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
0x7fff8e635000 - 0x7fff8e642ff7 libxar.1.dylib (202) <5572AA71-E98D-3FE1-9402-BB4A84E0E71E> /usr/lib/libxar.1.dylib
0x7fff8e643000 - 0x7fff8e643fff com.apple.Carbon (154 - 157) <14069023-0BBB-3925-9BA9-EB2C9E9B8C75> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
0x7fff8e68e000 - 0x7fff8e938ffd com.apple.HIToolbox (2.1 - 696) <1CFFF37B-C392-3088-B0A4-C08C55B2AF8F> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
0x7fff8e939000 - 0x7fff8e93dfff libpam.2.dylib (20) <A63D4DA2-06A4-3FB8-AC3F-BDD69694EE5E> /usr/lib/libpam.2.dylib
0x7fff8e93e000 - 0x7fff8e949fff libGL.dylib (9.3.1) <D643A325-3257-373A-A8C1-035E9F0484B0> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
0x7fff8e94a000 - 0x7fff8e9b7fff com.apple.SearchKit (1.4.0 - 1.4.0) <33298263-5B12-340D-BB9D-D52303849561> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
0x7fff8e9b8000 - 0x7fff8f2d41bf com.apple.CoreGraphics (1.600.0 - 599.7) <013A0B45-B8A4-3159-83C3-5A36CDB4F2C7> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
0x7fff8f2df000 - 0x7fff8f30ffff com.apple.IconServices (25 - 25.17) <36811973-8777-3211-863A-76B2C20B0ED0> /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices
0x7fff8f317000 - 0x7fff8f327fff libbsm.0.dylib (33) <2CAC00A2-1352-302A-88FA-C567D4D69179> /usr/lib/libbsm.0.dylib
0x7fff8f5b1000 - 0x7fff8f5b9fff libsystem_dnssd.dylib (522.1.11) <AEA21060-EFAA-3C63-8D53-CB22EE8B507C> /usr/lib/system/libsystem_dnssd.dylib
0x7fff8f60a000 - 0x7fff8f7a6ff7 com.apple.QuartzCore (1.8 - 332.0) <3EA81377-BA5F-39EA-8BAB-24CC5480E322> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x7fff8f7e9000 - 0x7fff8fbcaffe libLAPACK.dylib (1094.5) <7E7A9B8D-1638-3914-BAE0-663B69865986> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
0x7fff8fff8000 - 0x7fff8fffbfff libCoreVMClient.dylib (58.1) <EBC36C69-C896-3C3D-8589-3E9023E7E56F> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
0x7fff8fffc000 - 0x7fff9004afff libcorecrypto.dylib (161.1) <F3973C28-14B6-3006-BB2B-00DD7F09ABC7> /usr/lib/system/libcorecrypto.dylib
0x7fff903f8000 - 0x7fff90446ff9 libstdc++.6.dylib (60) <0241E6A4-1368-33BE-950B-D0A175C41F54> /usr/lib/libstdc++.6.dylib
0x7fff90497000 - 0x7fff90497fff com.apple.Cocoa (6.8 - 20) <1482E95B-0C26-38AF-9A44-50ADE6C0876C> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
0x7fff90498000 - 0x7fff904a6fff com.apple.opengl (9.3.1 - 9.3.1) <EEE2EBC1-866C-3947-9D03-B8339E948D77> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
0x7fff9060e000 - 0x7fff90629ff7 libsystem_malloc.dylib (23.1.10) <F1AA887E-FC96-3F40-A4BA-9E16C1865821> /usr/lib/system/libsystem_malloc.dylib
0x7fff90671000 - 0x7fff90689ff7 com.apple.openscripting (1.4 - 157) <B3B037D7-1019-31E6-9D17-08E699AF3701> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
0x7fff90926000 - 0x7fff9092bfff libmacho.dylib (845) <B2BE3C25-CF1F-309B-AB99-1F0B54621445> /usr/lib/system/libmacho.dylib
0x7fff9092c000 - 0x7fff90930fff com.apple.CommonPanels (1.2.6 - 96) <5744A1F1-1FA5-35DD-B924-F8983E81FC76> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
0x7fff90931000 - 0x7fff909fafff com.apple.LaunchServices (572.23 - 572.23) <8D955BDE-2C4C-3DD4-B4D7-2D916174FE1D> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
0x7fff90a9c000 - 0x7fff90a9eff7 com.apple.securityhi (9.0 - 55005) <405E2BC6-2B6F-3B6B-B48E-2FD39214F052> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
0x7fff90afd000 - 0x7fff90b67ff7 com.apple.framework.IOKit (2.0.1 - 907.1.13) <C1E95F5C-B79B-31BE-9F2A-1B25163C1F16> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x7fff910bf000 - 0x7fff910d9fff libdispatch.dylib (339.1.9) <D133504D-CD45-33B1-A331-AAE02D9C0CB2> /usr/lib/system/libdispatch.dylib
0x7fff910da000 - 0x7fff910e9ff8 com.apple.LangAnalysis (1.7.0 - 1.7.0) <2777524A-E7EF-3B7B-B15D-F58CDEEFC736> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
0x7fff910ea000 - 0x7fff911d1ff7 libxml2.2.dylib (26) <A1DADD11-89E5-3DE4-8802-07186225967F> /usr/lib/libxml2.2.dylib
0x7fff911d2000 - 0x7fff91261fff com.apple.Metadata (10.7.0 - 800.12.2) <A9F5D471-8732-3F95-A4A2-33864B92A181> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
0x7fff9158f000 - 0x7fff91595ff7 libsystem_platform.dylib (24.1.4) <8ABC4EBE-10D6-35B8-ADEE-63600E87601C> /usr/lib/system/libsystem_platform.dylib
0x7fff915b5000 - 0x7fff915b6ff7 libsystem_sandbox.dylib (278.10) <273400C7-F4E2-393C-BC9A-9042490ACED0> /usr/lib/system/libsystem_sandbox.dylib
0x7fff915d9000 - 0x7fff91665ff7 com.apple.ink.framework (10.9 - 207) <96A56EAC-B4AC-3C9A-8C40-64E6196753CC> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
0x7fff91666000 - 0x7fff9167eff7 com.apple.GenerationalStorage (2.0 - 160.2) <DC0236CC-A0F7-31DA-A201-09D4319BE96E> /System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage
0x7fff916a2000 - 0x7fff916b3ff7 libz.1.dylib (53) <4C5FA1A5-4471-398E-9543-2E54D46E63E9> /usr/lib/libz.1.dylib
0x7fff916b4000 - 0x7fff916b7fff com.apple.help (1.3.3 - 46) <6D71C959-D421-372B-A160-5317B4921F4D> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
0x7fff916b8000 - 0x7fff916cafff com.apple.ImageCapture (9.0 - 9.0) <D9269440-8E56-3C03-88F5-F8AD662D17DB> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
0x7fff91812000 - 0x7fff9181dff7 com.apple.NetAuth (5.0 - 5.0) <C811E662-9EC3-3B74-808A-A75D624F326B> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
0x7fff91fc7000 - 0x7fff91fefffb libxslt.1.dylib (13) <C9794936-633C-3F0C-9E71-30190B9B41C1> /usr/lib/libxslt.1.dylib
0x7fff91ff0000 - 0x7fff92009ff7 com.apple.Kerberos (3.0 - 1) <59427E11-37D6-34C9-95BB-D4438BFACA5B> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
0x7fff9200a000 - 0x7fff92252fff com.apple.CoreData (107 - 481) <F4C908C1-CB2F-34B7-9EB0-872057322739> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
0x7fff92253000 - 0x7fff9240bff3 libicucore.A.dylib (511.27) <003B6C21-CBD1-3486-9A1D-030ADF5FA061> /usr/lib/libicucore.A.dylib
0x7fff9240c000 - 0x7fff9243bff5 com.apple.GSS (4.0 - 2.0) <0284500B-47BA-3FE8-A5B4-22A0E8D80783> /System/Library/Frameworks/GSS.framework/Versions/A/GSS
0x7fff92d58000 - 0x7fff92d65ff4 com.apple.Librarian (1.2 - 1) <2F677B44-BCA3-313B-881E-EE322E865100> /System/Library/PrivateFrameworks/Librarian.framework/Versions/A/Librarian
0x7fff92e37000 - 0x7fff92e60ff7 libc++abi.dylib (48) <8C16158F-CBF8-3BD7-BEF4-022704B2A326> /usr/lib/libc++abi.dylib
0x7fff92eba000 - 0x7fff92ec1fff com.apple.NetFS (6.0 - 4.0) <D4FE0F16-3085-34AF-B860-3D46B98FAD2A> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
0x7fff92ec2000 - 0x7fff92eeefff com.apple.CoreServicesInternal (184.8 - 184.8) <651F4E1B-339B-3ED6-8F38-B03D0D2E5D04> /System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal
0x7fff9316c000 - 0x7fff9321cff7 libvMisc.dylib (423.32) <049C0735-1808-39B9-943F-76CB8021744F> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
0x7fff9321d000 - 0x7fff9321eff7 libDiagnosticMessagesClient.dylib (100) <4CDB0F7B-C0AF-3424-BC39-495696F0DB1E> /usr/lib/libDiagnosticMessagesClient.dylib
0x7fff9321f000 - 0x7fff93221ff3 libsystem_configuration.dylib (596.12) <9883100A-4D35-3D84-99B7-1CE999AE110A> /usr/lib/system/libsystem_configuration.dylib
0x7fff93222000 - 0x7fff93d96ff7 com.apple.AppKit (6.9 - 1265) <70472D45-5B9E-36BE-8EA3-007E69AC2169> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x7fff93d97000 - 0x7fff93dbcff7 com.apple.ChunkingLibrary (2.0 - 155.1) <B49408CD-ECE8-3785-84A4-45B03882574A> /System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary
0x7fff93e84000 - 0x7fff93eabffb libsystem_info.dylib (449.1.3) <395D8CD6-616A-3BD3-A195-C6D68EB9AB22> /usr/lib/system/libsystem_info.dylib
0x7fff93ef7000 - 0x7fff93fbaff7 com.apple.backup.framework (1.5.1 - 1.5.1) <A24B44C8-0E36-33A6-8F68-681E0AE7DC8A> /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup
0x7fff93fd5000 - 0x7fff93fdfff7 com.apple.CrashReporterSupport (10.9 - 538) <E4DA588F-C75A-39F6-9D2B-7B79F0245D39> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport
0x7fff94010000 - 0x7fff94039fff com.apple.DictionaryServices (1.2 - 208) <A4E4EA9E-08A1-3F77-8B57-A5A1ADD70B52> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
0x7fff9403a000 - 0x7fff94124fff libsqlite3.dylib (158) <447AA928-BCF7-3779-A7E5-210F264E0316> /usr/lib/libsqlite3.dylib
0x7fff9412d000 - 0x7fff94312ff7 com.apple.CoreFoundation (6.9 - 855.11) <DE55D963-05E1-3E4E-AFFC-B0784891016C> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x7fff94313000 - 0x7fff94364ff3 com.apple.audio.CoreAudio (4.2.0 - 4.2.0) <EAC1821B-CD20-30E3-BF95-C1839CA97BF7> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0x7fff94365000 - 0x7fff94512f27 libobjc.A.dylib (551.1) <F21C5742-7B9C-31F1-BBAE-1717BC6C2F1B> /usr/lib/libobjc.A.dylib
0x7fff94528000 - 0x7fff94561ff7 com.apple.QD (3.50 - 298) <5343278D-47B7-3AF2-9B4B-4B8B0F942CD1> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
0x7fff94562000 - 0x7fff9456bfff com.apple.CommonAuth (4.0 - 2.0) <1D263127-5F27-3128-996D-7397660D0C6E> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
0x7fff9456c000 - 0x7fff945befff libc++.1.dylib (120) <2CB96D10-1E3E-39B1-B90D-C56C3818321E> /usr/lib/libc++.1.dylib
0x7fff945bf000 - 0x7fff945d8ff7 com.apple.Ubiquity (1.3 - 289) <664F5B33-708D-33E9-81E1-C45CBE9AAB6E> /System/Library/PrivateFrameworks/Ubiquity.framework/Versions/A/Ubiquity
0x7fff946bf000 - 0x7fff94917ff1 com.apple.security (7.0 - 55471) <233831C5-C457-3AD5-AFE7-E3E2DE6929C9> /System/Library/Frameworks/Security.framework/Versions/A/Security

External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 1
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 11530
thread_create: 0
thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=153.6M resident=64.0M(42%) swapped_out_or_unallocated=89.6M(58%)
Writable regions: Total=109.3M written=1856K(2%) resident=5232K(5%) swapped_out=0K(0%) unallocated=104.2M(95%)

REGION TYPE VIRTUAL
=========== =======
CG backing stores 2576K
CG image 4K
CG raster data 24K
CG shared images 180K
CoreServices 512K
Dispatch continuations 16.0M
Kernel Alloc Once 8K
MALLOC 64.3M
MALLOC (admin) 32K
STACK GUARD 56.0M
Stack 9824K
VM_ALLOCATE 16.3M
__DATA 19.2M
__IMAGE 528K
__LINKEDIT 65.6M
__TEXT 88.0M
__UNICODE 544K
mapped file 47.3M
shared memory 4K
=========== =======
TOTAL 386.7M

Model: MacBookPro11,3, BootROM MBP112.0138.B02, 4 processors, Intel Core i7, 2.3 GHz, 16 GB, SMC 2.19f3
Graphics: Intel Iris Pro, Intel Iris Pro, Built-In, 1024 MB
Graphics: NVIDIA GeForce GT 750M, NVIDIA GeForce GT 750M, PCIe, 2048 MB
Memory Module: BANK 0/DIMM0, 8 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54343147533641465238412D50422020
Memory Module: BANK 1/DIMM0, 8 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54343147533641465238412D50422020
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x134), Broadcom BCM43xx 1.0 (6.30.223.154.49)
Bluetooth: Version 4.2.1f2 12982, 3 services, 23 devices, 1 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
Serial ATA Device: APPLE SSD SM0512F, 500,28 GB
USB Device: Internal Memory Card Reader
USB Device: 2.4G Receiver
USB Device: BRCM20702 Hub
USB Device: Bluetooth USB Host Controller
USB Device: Apple Internal Keyboard / Trackpad
Thunderbolt Bus: MacBook Pro, Apple Inc., 17.1
User avatar
netmaestro
PureBasic Bullfrog
PureBasic Bullfrog
Posts: 8451
Joined: Wed Jul 06, 2005 5:42 am
Location: Fort Nelson, BC, Canada

Re: Animation Gadget - last update Dec 21

Post by netmaestro »

Thanks Poshu! I've made a change to the program code removing DrawingBuffer() in the hope that it might be solved. New version is in first post.
BERESHEIT
User avatar
idle
Always Here
Always Here
Posts: 5839
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Re: Animation Gadget - last update Dec 21

Post by idle »

Revision 0.0.17 works fine on Linux
Windows 11, Manjaro, Raspberry Pi OS
Image
User avatar
ts-soft
Always Here
Always Here
Posts: 5756
Joined: Thu Jun 24, 2004 2:44 pm
Location: Berlin - Germany

Re: Animation Gadget - last update Dec 21

Post by ts-soft »

Yes, is the first one that works on linux x64 :D
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.
Image
User avatar
charvista
Addict
Addict
Posts: 949
Joined: Tue Sep 23, 2008 11:38 pm
Location: Belgium

Re: Animation Gadget - last update Dec 23

Post by charvista »

Hi netmaestro :D

I am glad that you followed the GifDecoder from Wilbert :)
I tried your program Revision 0.0.18 with some GIF files under Windows 8.1 x64, with PB 5.21 LTS (x86) and I found GIF files that crash the program. You can download these 5 GIFs at http://www.saao.ac.za/~wpk/CoSaTrak/results.html and those which do NOT work are: iridium35.gif, 65027a.gif and 65027c.gif. The other files (uhf2rocket.gif and noss6pass.gif) are working WELL.
The GIF files that do NOT work on your program are working WELL with Wilbert's program.

Inversely, your files moving_hole_dup.gif and moving_hole_oplus.gif are working WELL with your program, but do NOT with Wilbert's.

I hope that you'll find why.... :) Otherwise it is a superb program!

Merry Christmas!
- Windows 11 Home 64-bit
- PureBasic 6.10 LTS (x64)
- 64 Gb RAM
- 13th Gen Intel(R) Core(TM) i9-13900K 3.00 GHz
- 5K monitor with DPI @ 200%
wilbert
PureBasic Expert
PureBasic Expert
Posts: 3942
Joined: Sun Aug 08, 2004 5:21 am
Location: Netherlands

Re: Animation Gadget - last update Dec 23

Post by wilbert »

charvista wrote:Inversely, your files moving_hole_dup.gif and moving_hole_oplus.gif are working WELL with your program, but do NOT with Wilbert's.
Can you tell me what is wrong with them with my decoder charvista ? When I try them they seem to work fine.v :?
Windows (x64)
Raspberry Pi OS (Arm64)
User avatar
charvista
Addict
Addict
Posts: 949
Joined: Tue Sep 23, 2008 11:38 pm
Location: Belgium

Re: Animation Gadget - last update Dec 23

Post by charvista »

Hallo Wilbert

Yes, the picture moving_hole_dup.gif appears fine when showing the first frame, but when the next frames are showed the image appears incomplete, as we can see on the screenshot:

Image

The effet on the file moving_hole_oplus.gif is identical. All the other gif-files are working well.

Cheers! ;)

EDIT: I think I made little changes at the end of the program (I don't remember exactly what, sorry) so I am posting it for sure: (so it is perhaps MY fault !) :oops:

Code: Select all

;(c) Wilbert 2013-12-14
; GifDecoder v1.0.6

    DeclareModule GifDecoder; v1.0.6
     
      Structure GIF_Frame
        image.i
        left.u
        top.u
        width.u
        height.u
        delay.u   ; frame delay (1/100 sec)
        dispose.u ; (0 or 1 = do not dispose, 2 = restore to background color, 3 = restore to previous)
      EndStructure
     
      Declare.l BackgroundColor(*GIF_Data); Get the background color
      Declare.i Width(*GIF_Data); Get the width of the gif
      Declare.i Height(*GIF_Data); Get the height of the gif
      Declare.i FrameCount(*GIF_Data); Count the number of frames
      Declare.i LoopCount(*GIF_Data); Get the number of times the animation should loop (0 = infinite)
      Declare.i GetFrame(*Frame.GIF_Frame, *GIF_Data, FrameNumber = 0, Mode = 0); Get a frame. Mode 1 creates Sprites instead of Images
      Declare.i GetRenderedFrames(Array Frames.GIF_Frame(1), *GIF_Data, BgColor.l = 0, Mode = 0); Get all prerendered frames with delay set in msec.
     
    EndDeclareModule

    Module GifDecoder
     
      Structure CodeTableEntry
        *prev
        color.l
        size.l
      EndStructure
     
      Structure MultiType
        l.l[0]
        u.u[0]
        a.a[0]
      EndStructure
     
      Procedure.i SkipBlock(*m)
        CompilerIf #PB_Compiler_Processor = #PB_Processor_x64
          !mov rax, [p.p_m]
          !gifdecoder_skipblock_loop:
          !movzx rcx, byte [rax]
          !lea rax, [rax + rcx + 1]
        CompilerElse
          !mov eax, [p.p_m]
          !gifdecoder_skipblock_loop:
          !movzx ecx, byte [eax]
          !lea eax, [eax + ecx + 1]
        CompilerEndIf
        !and cl, cl
        !jnz gifdecoder_skipblock_loop
        ProcedureReturn
      EndProcedure
     
      Procedure.l CopyPattern(*ct, *ptr_output_buffer)
        CompilerIf #PB_Compiler_Processor = #PB_Processor_x64
          !mov rcx, [p.p_ct]
          !mov rdx, [p.p_ptr_output_buffer]
          !movzx rax, word [rcx + 12]
          !add [rdx], rax
          !mov rdx, [rdx]
          !gifdecoder_copypattern_loop:
          !sub rdx, 4
          !mov eax, [rcx + 8]
          !mov [rdx], eax
          !mov rcx, [rcx]
          !and rcx, rcx
        CompilerElse
          !mov ecx, [p.p_ct]
          !mov edx, [p.p_ptr_output_buffer]
          !movzx eax, word [ecx + 8]
          !add [edx], eax
          !mov edx, [edx]
          !gifdecoder_copypattern_loop:
          !sub edx, 4
          !mov eax, [ecx + 4]
          !mov [edx], eax
          !mov ecx, [ecx]
          !and ecx, ecx
        CompilerEndIf 
        !jnz gifdecoder_copypattern_loop
        ProcedureReturn 
      EndProcedure
     
      Procedure CopySwapRB(*src, *dst, num_pix)
        !mov ecx, [p.v_num_pix]
        !shl ecx, 2
        !jz gifdecoder_copyswaprb_exit
        !sub ecx, 4
        CompilerIf #PB_Compiler_Processor = #PB_Processor_x64 
          !mov rax, [p.p_src]
          !mov rdx, [p.p_dst]
          !push rsi
          !mov rsi, rax
          !gifdecoder_copyswaprb_loop:
          !mov eax, [rsi + rcx]
          !bswap eax
          !ror eax, 8
          !mov [rdx + rcx], eax
          !sub rcx, 4
          !jnc gifdecoder_copyswaprb_loop
          !pop rsi
        CompilerElse
          !mov eax, [p.p_src]
          !mov edx, [p.p_dst]
          !push esi
          !mov esi, eax
          !gifdecoder_copyswaprb_loop:
          !mov eax, [esi + ecx]
          !bswap eax
          !ror eax, 8
          !mov [edx + ecx], eax
          !sub ecx, 4
          !jnc gifdecoder_copyswaprb_loop
          !pop esi
        CompilerEndIf
        !gifdecoder_copyswaprb_exit:
      EndProcedure
     
      Procedure.i CopyLine(*buffer.Long, y, width, height, *db, fmt, pitch)
        Protected.i x
        If fmt & (#PB_PixelFormat_32Bits_RGB | #PB_PixelFormat_32Bits_BGR)
          If fmt & #PB_PixelFormat_ReversedY
            y = height - y - 1
          EndIf
          If fmt & #PB_PixelFormat_32Bits_RGB
            CopyMemory(*buffer, *db + y * pitch, width << 2)
          Else
            CopySwapRB(*buffer, *db + y * Pitch, width)
          EndIf
          *buffer + width << 2
        Else
          While x < width
            Plot(x, y, *buffer\l)
            x + 1 : *buffer + 4
          Wend
        EndIf
        ProcedureReturn *buffer                 
      EndProcedure
     
      Procedure DecodeImageData(*image_data.MultiType, Array ct.CodeTableEntry(1), *output_buffer.Long)
       
        Protected.i min_code_size = *image_data\a[0]
        Protected.i bits_left, bytes_left = *image_data\a[1]
        Protected.i code_size = min_code_size + 1
        Protected.i localcode, clrcode = 1 << min_code_size
        Protected.i code = clrcode, endcode = clrcode + 1
        Protected.i lastcode = endcode
        Protected.i bits, bit_mask = 1 << code_size - 1
       
        *image_data + 2
       
        Repeat
          ; get next code
          While bits_left < code_size
            If bytes_left > 1
              bits | *image_data\u[0] << bits_left
              bits_left + 16
              bytes_left - 2
              *image_data + 2
              Break
            Else
              If bytes_left = 1
                bits | *image_data\a[0] << bits_left
                bits_left + 8
                *image_data + 1
              EndIf
              bytes_left = *image_data\a[0]
              *image_data + 1
              If bytes_left = 0
                Break 2
              EndIf
            EndIf
          Wend
          localcode = code
          code = bits & bit_mask
          bits >> code_size
          bits_left - code_size
         
          If code <= lastcode
            ; code in table
            If code <> endcode
              If code <> clrcode
                If localcode <> clrcode
                  ; handle code in table
                  If lastcode < 4095
                    lastcode + 1
                    ct(lastcode)\prev = @ct(localcode)
                    ct(lastcode)\color = CopyPattern(@ct(code), @*output_buffer)
                    ct(lastcode)\size = ct(localcode)\size + 4
                  Else
                    CopyPattern(@ct(code), @*output_buffer)
                  EndIf
                Else
                  ; handle first code after clear code
                  *output_buffer\l = ct(code)\color : *output_buffer + 4
                EndIf
              Else
                ; handle clear code
                lastcode = endcode
                code_size = min_code_size + 1
                bit_mask = 1 << code_size - 1
              EndIf
            Else
              ; handle end code
              Break
            EndIf
          Else
            ; code not in table
            lastcode + 1
            ct(lastcode)\prev = @ct(localcode)
            ct(lastcode)\color = CopyPattern(@ct(localcode), @*output_buffer)
            ct(lastcode)\size = ct(localcode)\size + 4
            *output_buffer\l = ct(lastcode)\color : *output_buffer + 4           
          EndIf
         
          ; increase code_size if required
          If lastcode = bit_mask And code_size < 12
            code_size + 1
            bit_mask = 1 << code_size - 1
          EndIf
         
        ForEver
       
      EndProcedure
     
      Procedure.i GetFrame(*Frame.GIF_Frame, *GIF_Data, FrameNumber = 0, Mode = 0)
       
        Protected a.a, *buffer.Long, *palette.Long, *d.MultiType = *GIF_Data
        Protected.i i, x, y, check, entries, current_frame, loop_cnt, transp_idx = -1
        Protected.i *db, fmt, pitch   
        Dim ct.CodeTableEntry(4095)
       
        If FrameNumber >= 0
          *Frame\image = 0
        EndIf
       
        If *d\l[0] & $FFFFFF = $464947; 'GIF'
          a = *d\a[10] : *d + 13
          If a & $80; global color table present ?
            *palette = *d : entries = 2 << (a & 7) : *d + entries * 3
          EndIf
         
          Repeat
            Select *d\a[0]
              Case $21; extension
                Select *d\a[1]
                  Case $F9; graphic control extension
                    If current_frame = FrameNumber
                      a = *d\a[3]
                      *Frame\delay = *d\u[2]
                      *Frame\dispose = a >> 2 & 7
                      If a & 1 : transp_idx = *d\a[6] : EndIf
                    EndIf
                    *d + 8
                  Case $FE; comment extension -> skip
                    *d = SkipBlock(*d + 2)
                  Case $FF; application extension
                    If FrameNumber = -2 And PeekS(*d + 3, 11, #PB_Ascii) = "NETSCAPE2.0"
                      *d + 16 : loop_cnt = *d\u[0] : Break
                    EndIf
                    *d = SkipBlock(*d + 14)
                  Case $01; plain text extension
                    If current_frame <> FrameNumber
                      *d = SkipBlock(*d + 15) : current_frame + 1
                    Else
                      *d + 3
                      *Frame\left = *d\u[0] : *Frame\top = *d\u[1] : *Frame\width = *d\u[2] : *Frame\height = *d\u[3]
                      If Mode = 1
                        *Frame\image = CreateSprite(#PB_Any, *Frame\width, *Frame\height, #PB_Sprite_AlphaBlending)
                      Else
                        *Frame\image = CreateImage(#PB_Any, *Frame\width, *Frame\height, 32, #PB_Image_Transparent)
                      EndIf
                      Break
                    EndIf
                  Default
                    Break
                EndSelect
              Case $2C; image
                If current_frame <> FrameNumber
                  a = *d\a[9] : *d + 10
                  If a & $80 : *d + 2 << (a & 7) * 3 : EndIf
                  *d = SkipBlock(*d + 1) : current_frame + 1
                Else
                  *d + 1
                  *Frame\left = *d\u[0] : *Frame\top = *d\u[1] : *Frame\width = *d\u[2] : *Frame\height = *d\u[3]
                  a = *d\a[8] : *d + 9
                  If a & $80; local color table present ?
                    *palette = *d : entries = 2 << (a & 7) : *d + entries * 3
                  EndIf
                  While i < entries
                    ct(i)\color = $FF000000 | *palette\l : ct(i)\size = 4 : *palette + 3 : i + 1
                  Wend
                  If transp_idx >= 0
                    ct(transp_idx)\color = 0 
                  EndIf
                  *buffer = AllocateMemory(*Frame\width * *Frame\height << 2, #PB_Memory_NoClear)
                  If *buffer
                    DecodeImageData(*d, ct(), *buffer)
                    If Mode = 1
                      *Frame\image = CreateSprite(#PB_Any, *Frame\width, *Frame\height, #PB_Sprite_AlphaBlending)
                      If *Frame\image : check = StartDrawing(SpriteOutput(*Frame\image)) : EndIf
                    Else
                      *Frame\image = CreateImage(#PB_Any, *Frame\width, *Frame\height, 32)
                      If *Frame\image : check = StartDrawing(ImageOutput(*Frame\image)) : EndIf
                    EndIf
                    If check
                      *db = DrawingBuffer() : If *db
                        fmt = DrawingBufferPixelFormat()
                        pitch = DrawingBufferPitch()
                      EndIf
                      DrawingMode(#PB_2DDrawing_AllChannels)
                      If a >> 6 & 1
                        ; interlaced
                        For i = 0 To 3
                          y = 1 << (3 - i) & 7
                          While y < *Frame\height
                            *buffer = CopyLine(*buffer, y, *Frame\width, *Frame\height, *db, fmt, pitch)
                            y + (2 << (3 - i) - 1) & 7 + 1
                          Wend
                        Next
                      Else
                        ; non-interlaced
                        y = 0
                        While y < *Frame\height
                          *buffer = CopyLine(*buffer, y, *Frame\width, *Frame\height, *db, fmt, pitch)
                          y + 1
                        Wend
                      EndIf
                      *buffer - *Frame\width * *Frame\height << 2
                      StopDrawing()
                    EndIf
                   
                    FreeMemory(*buffer)
                  EndIf
                  Break
                EndIf
              Default
                Break
            EndSelect
          ForEver
        EndIf
        If FrameNumber >= 0
          ProcedureReturn *Frame\image
        ElseIf FrameNumber = -2
          ProcedureReturn loop_cnt 
        Else
          ProcedureReturn current_frame
        EndIf
      EndProcedure
     
      Procedure.i GetRenderedFrames(Array Frames.GIF_Frame(1), *GIF_Data, BgColor.l = 0, Mode = 0)
        Protected.i w, h, f, f_end, d, state, pr_state
        w = Width(*GIF_Data)
        h = Height(*GIF_Data)
        f_end = FrameCount(*GIF_Data) - 1
        If f_end >= 0
          ReDim Frames(f_end)
          If Mode = 1
            state = CreateSprite(#PB_Any, w, h, #PB_Sprite_AlphaBlending)
            StartDrawing(SpriteOutput(state))
            DrawingMode(#PB_2DDrawing_AllChannels)
            Box(0, 0, w, h, 0)
            StopDrawing()
            For f = 0 To f_end
              GetFrame(@Frames(f), *GIF_Data, f)
              With Frames(f)
                If \dispose = 3
                  pr_state = CopySprite(state, #PB_Any)
                EndIf
                StartDrawing(SpriteOutput(state))
                DrawAlphaImage(ImageID(\image), \left, \top)
                StopDrawing()
                FreeImage(\image)
                \image = state
                If \dispose = 2
                  state = CreateSprite(#PB_Any, w, h, #PB_Sprite_AlphaBlending)
                  StartDrawing(SpriteOutput(state))
                  DrawingMode(#PB_2DDrawing_AllChannels)
                  Box(0, 0, w, h, 0)
                  StopDrawing()             
                ElseIf \dispose = 3
                  state = pr_state
                Else
                  state = CopySprite(state, #PB_Any)
                EndIf
                \left = 0 : \top = 0 : \width = w : \height = h
                \delay * 10 : d + \delay : \dispose = 0
              EndWith
            Next
            FreeSprite(state)     
          Else
            If BgColor = 0
              BgColor = BackgroundColor(*GIF_Data)
            EndIf
            state = CreateImage(#PB_Any, w, h, 24, BgColor)
            For f = 0 To f_end
              GetFrame(@Frames(f), *GIF_Data, f)
              With Frames(f)
                If \dispose = 3
                  pr_state = CopyImage(state, #PB_Any)
                EndIf
                StartDrawing(ImageOutput(state))
                DrawAlphaImage(ImageID(\image), \left, \top)
                StopDrawing()
                FreeImage(\image)
                \image = state
                If \dispose = 2
                  state = CreateImage(#PB_Any, w, h, 24, BgColor)
                ElseIf \dispose = 3
                  state = pr_state
                Else
                  state = CopyImage(state, #PB_Any)
                EndIf
                \left = 0 : \top = 0 : \width = w : \height = h
                \delay * 10 : d + \delay : \dispose = 0
              EndWith
            Next
            FreeImage(state)
          EndIf
          If d = 0
            For f = 0 To f_end : Frames(f)\delay = 100 : Next 
          EndIf
          ProcedureReturn #True
        Else
          ProcedureReturn #False
        EndIf
      EndProcedure
     
      Procedure.l BackgroundColor(*GIF_Data)
        Protected c.l, i.i, *d.MultiType = *GIF_Data 
        If *d\l[0] & $FFFFFF = $464947 And *d\a[10] & $80; 'GIF'
          i = 13 + *d\a[11] * 3
          c = RGB(*d\a[i], *d\a[i + 1], *d\a[i + 2])
        EndIf
        ProcedureReturn c
      EndProcedure
     
      Procedure.i Width(*GIF_Data)
        Protected *d.MultiType = *GIF_Data 
        If *d\l[0] & $FFFFFF = $464947; 'GIF'
          ProcedureReturn *d\u[3]
        Else
          ProcedureReturn 0
        EndIf
      EndProcedure
     
      Procedure.i Height(*GIF_Data)
        Protected *d.MultiType = *GIF_Data 
        If *d\l[0] & $FFFFFF = $464947; 'GIF'
          ProcedureReturn *d\u[4]
        Else
          ProcedureReturn 0
        EndIf
      EndProcedure
     
      Procedure.i FrameCount(*GIF_Data)
        ProcedureReturn GetFrame(#Null, *GIF_Data, -1)
      EndProcedure
     
      Procedure.i LoopCount(*GIF_Data)
        ProcedureReturn GetFrame(#Null, *GIF_Data, -2)
      EndProcedure
     
  EndModule
  
  
  
      EnableExplicit

    ;IncludeFile "GifDecoder.pbi"

    InitSprite()

    Define Event, Item, FileName.s
    Define f, frame_count, *m
    Dim Frames.GifDecoder::GIF_Frame(0)

    If OpenWindow(0, 0, 0, 720, 420, "[Animated] GIF explorer", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
        ;SetWindowColor(0,$000000); *******
        ExplorerListGadget(0, 10, 10, 280, 400, GetHomeDirectory())
        ;SetGadgetColor(0,#PB_Gadget_BackColor,$000000); *******
        ;SetGadgetColor(0,#PB_Gadget_FrontColor,$FFFFFF); *******
      OpenWindowedScreen(WindowID(0), 310, 10, 400, 400)
      ClearScreen($D8D8D8); $000000); $D8D8D8); *******
      FlipBuffers()
     
      f = 0
      Repeat
        Event = WindowEvent()
       
        If EventType() = #PB_EventType_Change
          Item = GetGadgetState(0)
          If Item >= 0
            FileName.s = GetGadgetText(0) + GetGadgetItemText(0, Item)
            If FileSize(FileName) > 32 And ReadFile(0, FileName)
              *m = AllocateMemory(Lof(0), #PB_Memory_NoClear)
              ReadData(0, *m, Lof(0))
              CloseFile(0)
             
              If GifDecoder::FrameCount(*m)
               
                ; remove existing sprites
                For f = 0 To ArraySize(Frames())
                  If Frames(f)\image
                    FreeSprite(Frames(f)\image)
                  EndIf
                Next
               
                ; get new sprites
                GifDecoder::GetRenderedFrames(Frames(), *m, 0, 1)
                frame_count = ArraySize(Frames()) + 1
                If Frames(0)\width > 400 Or Frames(0)\height > 400
                  For f = 0 To frame_count - 1
                    With Frames(f)
                      If \width > \height
                        ZoomSprite(\image, 400, 400 * \height / \width) 
                      Else
                        ZoomSprite(\image, 400 * \width / \height, 400) 
                      EndIf
                    EndWith
                  Next   
                EndIf
               
                ; single frame ?, display now
                If frame_count = 1
                  ClearScreen($D8D8D8)
                  DisplayTransparentSprite(frames(0)\image, 0, 0)
                  FlipBuffers()
                Else
                  f = 0
                EndIf
               
              EndIf
              FreeMemory(*m)
            EndIf
          EndIf
        EndIf
       
        If frame_count > 1
          While frames(f)\delay = 0
            f = (f + 1) % frame_count
          Wend
          With frames(f)
            ClearScreen($D8D8D8)
            DisplayTransparentSprite(\image, 0, 0)
            FlipBuffers()
            Delay(\delay)
          EndWith
          f = (f + 1) % frame_count
        EndIf
       
      Until Event = #PB_Event_CloseWindow
    EndIf  
- Windows 11 Home 64-bit
- PureBasic 6.10 LTS (x64)
- 64 Gb RAM
- 13th Gen Intel(R) Core(TM) i9-13900K 3.00 GHz
- 5K monitor with DPI @ 200%
User avatar
charvista
Addict
Addict
Posts: 949
Joined: Tue Sep 23, 2008 11:38 pm
Location: Belgium

Re: Animation Gadget - last update Dec 23

Post by charvista »

I was still using Wilbert's decoder revision 1.0.6. :oops:
With Wilbert's actual revision 1.0.9, all gif-images are working correctly.
- Windows 11 Home 64-bit
- PureBasic 6.10 LTS (x64)
- 64 Gb RAM
- 13th Gen Intel(R) Core(TM) i9-13900K 3.00 GHz
- 5K monitor with DPI @ 200%
User avatar
netmaestro
PureBasic Bullfrog
PureBasic Bullfrog
Posts: 8451
Joined: Wed Jul 06, 2005 5:42 am
Location: Fort Nelson, BC, Canada

Re: Animation Gadget - last update Dec 23

Post by netmaestro »

New update today, a couple of improvements. Firstly, the three gifs that charvista linked that made my decoder crash will now load without problems. Thanks very much for the heads-up on that, charvista if you hadn't let me know about those it could have been quite some time before the weakness in the decoder came to light. It was an interesting process fixing it. I worked on it all day yesterday and got absolutely nowhere. When I finally gave up and went to bed I had investigated many avenues in depth and they all came up empty. I just had no idea what was wrong. And then about 3 hours or so into the night, I dreamed the solution. I'm not lying to you, that's exactly what happened. In the middle of a deep sleep I saw a row of ones and zeros with the groups of ones too far apart, woke halfway up, turned over and went back to sleep. When I got up this morning I remembered that and checked it out. It was right. The problem turned out to be that I didn't have enough checks on the processing of the packed bytes block. I was only checking for the END code when I should have been also counting the processed bytes and stopping when I'd read them all. These three gifs were made by someone who didn't know what they were doing. They issued a CLEAR code right before the END code and stored the END code without resetting the code size. So my reader was missing it and reading right off the end. But while the fix seems simple, it was some work to implement. My GetBits macro was not keeping track of how often it crossed byte boundaries and so it had to be rewritten, pretty much from scratch. Once it knew how many bytes it had processed, the fix was a simple check, breaking out of the processing loop if the last byte had been read.

The second change I made is to place the code in its own module. This is an important thing to do if you're writing code for use as .pbi includes so as not to interfere with the larger program it gets included into.

Anyway, thanks to all who are testing it, and Mac results are always welcome.
BERESHEIT
User avatar
blueb
Addict
Addict
Posts: 1111
Joined: Sat Apr 26, 2003 2:15 pm
Location: Cuernavaca, Mexico

Re: Animation Gadget - last update Dec 25

Post by blueb »

In the middle of a deep sleep I dreamed you got a job with PureBasic heading up the 'eye candy' dept.

Hopefully that dream turns out true as well. :mrgreen:
- It was too lonely at the top.

System : PB 6.21(x64) and Win 11 Pro (x64)
Hardware: AMD Ryzen 9 5900X w/64 gigs Ram, AMD RX 6950 XT Graphics w/16gigs Mem
User avatar
DK_PETER
Addict
Addict
Posts: 904
Joined: Sat Feb 19, 2011 10:06 am
Location: Denmark
Contact:

Re: Animation Gadget - last update Dec 25

Post by DK_PETER »

You've done an amazing job.
It runs everything I've thrown at it.
Thank you for this nice gift, netmaestro. :-)
Current configurations:
Ubuntu 20.04/64 bit - Window 10 64 bit
Intel 6800K, GeForce Gtx 1060, 32 gb ram.
Amd Ryzen 9 5950X, GeForce 3070, 128 gb ram.
Post Reply