| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403 |
- ----------------------- RELEASE 1.10.15 -----------------------
- This release adds support for Python 3.13, and fixes some significant bugs.
- Upgrading is highly recommended.
- Windowing
- * Fix regression related to fullscreen switching on Windows (#1594)
- * Fix issues related to fullscreen switching corner cases on macOS
- * Fix keyUp event being eaten when switching fullscreen modes on macOS
- * Support UTF-8 window titles on X11
- * Fix wrong error message on X11 if xf86dga extension is not found
- Rendering
- * Add "Khronos PBR Neutral" tone mapping operator to HDR filter (#1659)
- * OpenGL: Fix offscreen buffer clearing if back buffers are requested
- * DirectX 9: Fix crash on window event after window close
- * DirectX 9: Fix support for r32f and rgba32f textures
- * DirectX 9: Fix crash when copying inverted framebuffer to texture RAM
- * DirectX 9: Fix buffer crash if main window has no depth buffer
- Text
- * Fix handling of surrogate pairs in text on Windows (#1629)
- * Fix disabling text-native-antialias setting not working properly
- * Fix small-caps not working with text-use-harfbuzz enabled (#1666)
- * Show error instead of crash if glyph does not fit in page (#1626)
- * Update docstring for set_text_color() (#1621)
- GUI
- * Fix crash when PGEntry removes itself with background focus (#1650)
- * Fix `PGEntry::get_cursor_Y()`, which always returned 0.0 (#1633)
- * Now makes copies of mutable default values in DirectGUI constructor (#1587)
- Deployment
- * Fix wrong relative paths with bam_model_extensions (#1642)
- * Add bam_embed_textures option to embed textures in .bam files
- * Don't warn about missing ld-linux library on aarch64 Linux
- * build_apps dist hooks no longer import Panda3D (#1624)
- Miscellaneous
- * Fix major memory leak on M1/M2/M3 Macs
- * Fix seeking in OpenAL sounds not working on macOS in some cases (#1607)
- * Fix direct.stdpy.glob not finding files in VFS (#1675)
- * Improve printing of floating-point linmath objects (#1671)
- * Fix VFS mount points not being listed as directories (#1244)
- * Fix splits occurring in RopeNode geometry (#1325)
- * Fix DistancePhasedNode exception at module clean-up time
- * Fix magfilter on KW_mipmap in egg-palettize (#1631)
- * Fix creating LerpFunctionInterval from functools.partial (#1623)
- * Fix "no attribute notifier" in FSM.requestNext/Prev (#1644)
- * Fix file_texture_mode property on BamWriter being read-only
- * TransformState getters no longer return references to temporary (#1625)
- Build
- * Assorted build fixes for Python 3.13 and 3.13t
- * Fix assorted compiler warnings
- * Build fix for newer FFmpeg versions
- * Add --ignore option to test_wheel.py to allow ignoring tests
- * Update Eigen to 3.2.10 (fixes binder2nd error when building with C++17)
- * Fix non-determinism in Python bindings (#1651)
- * Fix preprocessor issues in interrogate (#1635)
- ----------------------- RELEASE 1.10.14 -----------------------
- This release adds support for Python 3.12 and furthermore contains significant
- bug fixes, and also implements some missing features in the shader generator.
- API
- * Accept bytes object in DatagramOutputFile.write_header()
- * Add missing clear_color() method to CardMaker
- * Add file_version properties to BamFile and BamWriter, mirroring BamReader
- * Add missing method for getting current display mode index (#1550)
- Shader Generator
- * Add support for perspective points (#1440)
- * Implement remaining missing TexGenAttrib modes (#1437)
- * Fix support for hardware point sprites
- * Support missing texture types: cube map arrays, 1D arrays, buffer textures
- Rendering
- * Add texconst_i input for Cg shaders to access TexGenAttrib constants
- * Fix bug when same texture is used with different TexGenAttrib modes
- * OpenGL 3.2+/ES: Correctly handle 4-component texcoords in default shader
- * DX9: fix bugs setting some kinds of shader inputs
- * OpenGL: guard against exceeding max supported vertex attribute stride
- * Add missing handling for 1D array textures in Cg shaders
- * OpenGL: improve handling of SM5 Cg shaders
- * Fix p3d_LightModel.ambient not updating properly
- * Work around wireframe rendering bug in Panfrost drivers
- * Fix assertion error when preparing texture fails
- * Fix image load/store support in GLES 3.1 (set gl-immutable-texture-storage)
- Windowing
- * Windows: Fix issues switching fullscreen while maximized (#1469)
- * macOS: Fix undecorated setting ignored when switching back to windowed mode
- * macOS: Fix window sizing bug when simultaneously changing undecorated
- * macOS: Fix black bar when switching to fullscreen with Z-Order set to Top
- * macOS: Squelch secure restorable state warning on macOS 14 "Sonoma"
- * X11: Fix crash on shutdown when using custom cursor
- * EGL: Fix invalid operation error when using headless pbuffer
- * EGL: Add support for resizing (offscreen) pbuffers
- * Windows: Message loop is no longer disabled when using tk with threaded draw
- * Windows: Fix handling of invalid raw mouse devices
- Deployment
- * Fix crash when running executable built with Python 3.11 (#1423)
- * Fix for thirdparty packages that use delvewheel (#1492)
- * Strip .abi3.so suffix from libraries
- * Silently ignore missing hidden imports
- * Add missing hidden imports for setuptools and shapely
- * Show better error message when targeting no-longer-supported platforms
- * Fix issues running pfreeze on macOS
- * Fix crash using on arm64 systems with 16 KiB pages (eg. Asahi Linux)
- * Fix error using bam_model_extensions with bdist_apps
- Pipeline
- * Support reading .bmp files with RLE8 compression
- * Fix wrong magfilter being written by egg-palettize (#1585)
- * Fix memory leaks when writing TIFF files
- * Fix hang in .egg loader when `<Collide>` used with `<Line>` (#1515)
- * Add assimp-disable-extensions config var (see #1537)
- * Fix assert/crash when reading multiple recorders from bam file (#1561)
- Build
- * Add support for building with Python 3.12
- * macOS .dmg are now built as HFS+ for 10.9 compatibility (#1502)
- * Don't use RTTI features in headers when building with `-fno-rtti`
- * Fix some new compiler warnings
- * Fix compile errors with some versions of png.h
- * Work around GCC 13.2 bug compiling interrogate-generated code (#1580)
- * Support building with LibreSSL on Windows (#1503)
- * Fix some issues in anticipation of Python 3.13+ (#1523, #1526)
- * More robust parsing of version in setup.cfg (incl. #1539)
- * Avoid using deprecated distutils module (#1549)
- * Add _d suffix to .pyd files when building debug build on Windows (#1566)
- Miscellaneous
- * Fix bug causing textures to sometimes be randomly downloaded
- * Fix PStats Python profiling exception when using metaclasses (#1505)
- * Fix segfault when ConnectionRepository is verbose (#1430)
- * Fix broken minusnode icon in dmodels (#1449)
- * Fix wrong delete operator in ARToolKit
- * Fix crash when encountering corruption in OpenAL stream (#1452)
- * Fix SimpleHashMap error reporting at static init time
- * Fix assorted code issues, typos, and Python 2-isms in direct tree
- * Code size reductions for interrogate-generated bindings
- * Assorted docstring corrections and additions
- * Interrogate supports explicit cls parameter for static methods
- * Interrogate: fix enum scope issue
- * Don't assume presence of softspace attribute on files in directnotify
- * Use importlib.metadata (not pkg_resources) for entry points in Python 3.8+
- ----------------------- RELEASE 1.10.13 -----------------------
- This is a significant release containing many important bug fixes and a couple
- of interesting new features.
- Rendering
- * Fix single texture stage limit when `gl-version 3 2` or higher is set (#1404)
- * Fix some render-to-texture bugs with multithreaded pipeline (incl. #1364)
- * Fix failure to unset divisor after rendering with hardware instancing
- * Add "MSAA" filter to CommonFilters class as convenience to enable MSAA
- * Fix multisample FBOs with MRT resolving aux target into color target
- * Fix shader generator not responding to fog color changes
- * Fix OpenGL error when downloading GL_LUMINANCE8 texture
- Windowing
- * Fix incorrect "without" event generation when mouse leaves window (#1400)
- * Windows: Fix lost "up" events when dragging cursor outside window while
- multiple mouse buttons are pressed down (#1396)
- * macOS: Fix crash with threading-model on newer macOS versions (#1286)
- * macOS: Fix black screen when going fullscreen on Apple M1-based macs (#1316)
- * macOS: Fix window overlapping Dock when requesting very large height
- * macOS: Improve application termination handling, now sends proper exit events
- * X11: tinydisplay handles window resizes more efficiently
- * X11: Work around window not rendering at first on swaywm (#1087)
- Deployment
- * Not all code was being built with optimize level 2
- * Add `keep_docstrings` option to switch to optimize level 1 (#1341)
- * Add `prefer_discrete_gpu` option to force dedicated GPU on Windows (#680)
- * Add `bam_model_extensions` for converting non-egg models to .bam (#714)
- * Work around autodiscovery error when using `setuptools>=61.0.0` (#1394)
- * Default Linux target to `manylinux2014_x86_64` on Python 3.11+
- PStats
- * Add support for Python profiling with `pstats-python-profiler` Config.prc var
- * Fix PStats crash at launch from pip installs in newer Linux distros (#1391)
- * Performance improvements to time-based strip chart views
- * Time-based strip charts now can show start/stop count in corner of graphs
- * Optimize client performance when sending a large number of samples
- * Fix dropped frames by changing value for `pstats-max-queue-size` from 1 to 4
- * Server accept clients using PStats protocol version 2.3
- Assimp
- * Fix assertion when loading meshes with multiple primitive types
- * Add `assimp-collapse-dummy-root-node` option to remove root node (see #366)
- * Import custom object properties as tags
- * Add support for additional texture maps, including PBR textures
- * Support reading tangent and binormal vectors
- * Improve performance when loading geometry
- * Fix problems reading external files (see #366)
- * Support reading alpha mode when loading .glTF models
- * Add support for texture transforms
- * Add support for texture wrapping modes
- * Fix memory corruption bugs
- Build
- * Fixes to `pview.desktop` file on Linux
- * makepanda: Fix problems when building on arm64 on macOS without `--arch` flag
- * makepanda: Fix detection issues with newer macOS / XCode versions
- * makepanda: Fix motiontrail header files not being copied
- * Windows: Fix HTTPClient not working when nativenet module is disabled
- * macOS: Fix OpenCV library refusing to load in arm64 build (#1393)
- * Fix compiler error when compiling for e2k (MCST Elbrus 2000) (#1367)
- Miscellaneous
- * Add new motion trails sample program
- * `MotionTrail.add_vertex()` method now directly accepts a vertex position
- * Significant performance optimization of C++-based motion trail implementation
- * Fix race condition when destructing/constructing NodePaths in thread (#1366)
- * Add implementation of capsule-into-polygon collision test (#1369)
- * Fix texture transforms sometimes not being flattened (#1392)
- * Fix support for `#pragma include <file.glsl>` in GLSL shaders
- * Fix `ShaderBuffer.prepare()` not doing anything
- * Implement deepcopy for PointerToArray
- * Fix Texture deepcopy keeping a reference to the original RAM image
- * Fix bf-cbc encryption no longer working when building with OpenSSL 3.0
- * PandaNode bounds_type property was erroneously marked read-only
- * Fix warnings when copying OdeTriMeshGeom objects
- * Fix a crash when using `Notify.set_ostream_ptr()` from Python (#1371)
- * Fix GarbageReport not working with Python 3 (#1304)
- * Make `mat.cols[n]` and `mat.rows[n]` assignable
- * Fix `ExecutionEnvironment.args` being empty on Linux
- * Add various useful functions to interrogatedb module
- * Fix Python 3 issues unpacking uint types in Python 3 (#1380)
- * Fix interrogate syntax error with C++11-style attributes in declarators
- * Fix double-precision color values not being clamped by GeomVertexWriter
- * Fix regression with BufferViewer in double-precision build (#1365)
- * Fix `PandaNode.nested_vertices` not updating properly
- * Prevent Panda calculating bounding volume of Geom with custom bounding volume
- * Add `do_events()` and `process_event()` snake_case aliases in eventMgr
- * Support second arg of None in `replace_texture()` / `replace_material()`
- * Support `os.fspath()` for ConfigVariableFilename objects (#1406)
- * rplight: Fix PSSM calculation failing with infinite far distance (#1397)
- * Remove spurious print in `direct.showutil.Effects.createBounce()` (#1383)
- * Fix assorted compiler warnings
- ----------------------- RELEASE 1.10.12 -----------------------
- Recommended maintenance release containing primarily bug fixes.
- Windowing
- * Windows: Fix origin not respected when switching to windowed mode
- * macOS: Fix origin not being updated when resizing window
- * macOS: Fix off-by-one errors with mouse cursor position
- * macOS: Fix issues with confined mouse mode
- * macOS: Fix events being suppressed when moving the mouse pointer
- * macOS: Invert horizontal scroll, set `cocoa-invert-wheel-x true` to revert
- Rendering
- * Add `shadow-cube-map-filter` setting to enable cube map shadow filtering
- * Support floating-point FBOs in OpenGL ES 2+
- * Fix texture format selection in OpenGL with T_half_float component type
- * Added `egl-device-index` config var to select EGL device
- * Offscreen windows in tinydisplay renderer are now resizeable
- * CommonFilters now supports alternative coordinate systems
- * Fix BufferViewer frame when using a different coordinate system
- Deployment
- * Fix _bootlocale error in deployed application on Windows with Python 3.10
- * Include _sysconfigdata module properly when using sysconfig module
- * Fix building deploy-stub on platforms that use DT_RUNPATH instead of DT_RPATH
- * `sys.flags.optimize` is now set to 2 in Python 3.2 and above
- * Fix import errors when using scipy
- Miscellaneous
- * `Texture::get_ram_image_as()` fixed for 3D textures
- * Fix PStats GPU timing not working with newer NVIDIA drivers
- * Fix false negative in collision test when sphere is fully inside box
- * Resolve segmentation fault when statically linking ffmpeg module
- * Fix issue with failed mmap when using WebcamVideo on Linux
- * macOS: Keyboard/mouse devices are no longer enumerated by default
- * Fix repr of LPlane class
- * Remove dependency on ShowBase in FilterManager
- * Many new functions added to interrogatedb module to query additional info
- * Interrogate no longer writes wrappers with rvalue references to interrogatedb
- * PStats on Linux: Fix mouse motion detected outside strip chart graph area
- * Fix assertion when reading bam file with Bullet convex hull shape
- * Fix memory leak when specifying owner of a task
- * Add additional helpful debug/spam prints to display code
- Build
- * Support building with Python 3.11
- * Support building with OpenSSL 1.1.1 on Windows
- * Support building with OpenEXR 3.0 or 3.1 on Windows
- * Fix errors when compiling Panda headers with MinGW
- * Allow compiling Panda headers on Windows without NOMINMAX set
- * Fix wheel platform tag on manylinux aarch64
- * Experimentally allow building with mimalloc on Windows
- * Makepanda records cache timestamps as integers instead of floats
- * Makepanda can now also build tinydisplay on Linux without X11
- * Fix naming of built wheels when building for macOS 12
- ----------------------- RELEASE 1.10.11 -----------------------
- Maintenance release containing assorted bug fixes and minor improvements.
- Rendering
- * Fix erratic shadow bug with multiple lights from gltf/blend2bam (#1153)
- * Fix erratic behavior of HW skinning shaders on non-animated models (#1207)
- * Fix errors with compressed luminance textures in DirectX 9 (#1198)
- * Implement screenshotting multisample backbuffer in DirectX 9 (#1225)
- Texture Loading
- * Don't load texture from disk when loading .bam if preloading is off (#1208)
- * Fix TextureReloadRequest not working properly when mipmapping is disabled
- * Add TexturePool.get_texture() method for querying textures in pool
- * Fix crash when opening a .txo, .dds or .ktx file fails
- * Improve error message when calling tex.write() with unknown extension
- Input
- * Generate horizontal scroll wheel events on Windows
- * Generate events for mouse buttons 4 and 5 on X11
- * Generate events for lmeta, rmeta and menu keys on Windows
- * Add raw event (raw-<) for key between shift and Z on ISO keyboards
- * Gracefully handle invalid raw input device data on Windows
- * Correctly handle negative axis input from Windows raw input devices (#1218)
- * FrSky RC controller is now registered as flight stick (#1218)
- Deployment
- * Support building with tkinter on all supported platforms (#780)
- * Fix issue with zipimport module not being packaged
- * Fix grayscale icons becoming blue when scaled automatically
- * Automatically include cacert.pem when depending on certifi
- * Suppress assorted spurious missing module warnings
- * Targeting linux_x86_64 / linux_i686 also allows use of manylinux wheels
- Build
- * Add support for Maya 2022 (#1213)
- * Support building with Visual Studio 2022
- * Support building with macOS 11.3 SDK (and work around clang crash)
- * Support building with Windows 11 SDK
- * Build Ubuntu .deb files with bindings for multiple Python 3 versions
- * Support compilation with Assimp 5.x (#1212)
- * Support building on manylinux_2_24
- Miscellaneous
- * Fix nodes with same tag key but different value getting flattened together
- * taskMgr.step() now restores previous SIGINT handler afterwards (#1180)
- * Add base.clock as alias for globalClock
- * FilterManager mul parameter now accepts floating-point values (#1231)
- * Assorted minor API documentation improvements
- * Fix memory leak getting Bullet persistent manifolds from Python (#1193)
- * Fix assertion in PythonLoaderFileType with debug Python build
- * Add missing property interface to PlaneNode
- * Fix prepare_scene() not properly invoking the Shader Generator
- * Add name property to AICharacter class (#1205)
- * Add bullet-split-impulse configuration variable (#1201)
- * Fix slider thumb entering dragging state on keyboard button press (#1188)
- * Allow OnscreenImage to be created before ShowBase is created (#1209)
- * Fix manager, t, play_rate, duration properties of Sequence/Parallel (#1202)
- * Expose ButtonEvent API to Python (UNSTABLE API, will be changed soon)
- ----------------------- RELEASE 1.10.10 -----------------------
- This release fixes assorted, mostly very minor bugs.
- * Round refresh rates when choosing display mode on macOS (#1144)
- * Vectors now support floor division
- * It is now possible to use round(), ceil() and floor() with vector types
- * Add RenderState::get_unused_states()
- * Fix assertion error in RenderState::get_num_unused_states()
- * Fix Assimp loader not importing normal vectors correctly (#1163)
- * Fix error when trying to render DirectGUI in offscreen mode (#1174)
- * Fix crash when resizing window in multi-window DirectX 9 application (#1167)
- * Fixes to enable compilation with recent OpenEXR and FFMpeg versions
- * Fix draw callback being called twice if cull callback calls upcall()
- * Improve error message when display module fails to load
- * Fix writing/reading BitArray to/from bam files on 64-bit systems (#1181)
- * evdev input devices (such as gamepads) are now supported in FreeBSD as well
- * Panda no longer tries to compress buffer textures when compression is enabled
- * Fix Geom::make_lines_in_place() (& points, patches) leaving invalid state
- * Fix memory leak when cleaning up FilterManager (#1166)
- * Fix memory leak deleting multisample OpenGL FBOs (#1166)
- * Fix auto-binding of SSBOs sometimes causing overlapping bindings (#1176)
- * PSSMCameraRig::update() now accepts a camera node directly
- * Support copying depth buffer for 32-bit depth with 8-bit stencil (#1142)
- * Prevent trying to copy depth from non-depth buffer in OpenGL renderer (#1142)
- * Fixes to format selection for OpenGL renderbuffers (#1137, #1141)
- * gl-depth-zero-to-one is now supported in OpenGL ES 2+ (if driver supports)
- * Maya models can contain more than three eggObjectTypes (#1134)
- * Fix black screen on Linux when switching fullscreen without a WM active
- * Fix Linux crash when trying to load a directory instead of a file (#1140)
- * Fix crash when loading an invalid font
- * Fix a very obscure unintended DirectGUI behavior change in 1.10.9
- ------------------------ RELEASE 1.10.9 -----------------------
- This is a bugfix release which addresses some severe issues on macOS, as well as
- a broad range of issues on other platforms, and adds some minor features.
- Shaders
- * Some macOS builds were erroneously not built with Cg shader support (#1119)
- * Show error for unrecognized p3d_TextureXYZ GLSL shader inputs
- * Fix Cg shader bug when using multiple GraphicsStateGuardian objects (#1117)
- * New filled wireframe mode that respects vertex shaders (#1124)
- * Fix undefined behavior when using non-nearest filtering on isampler/usampler
- * Harmless shader linking warnings on macOS are now suppressed
- Windowing
- * Fix mouse confinement activating on Windows for non-foreground window (#1115)
- * Fix occasional failure with switching to fullscreen on macOS (#1039)
- * Fix parented window being offset if undecorated flag isn't set on Windows
- Rendering
- * Better support for headless OpenGL on Linux via EGL-based fallback (#1086)
- * EGL implementation can now fall back to alternative EGL devices
- * Fix ability to create multisample FBO when using EGL (#1089)
- * Fix copy-RAM and copy-texture modes for multisample-enabled buffers (#1129)
- * FilterManager now respects depth-bits specified in Config.prc
- * Auto-convert vertex data down from 64-bit float to 32-bit in OpenGL ES
- Texturing
- * Add missing 16-bpc and 32-bpc integer texture formats
- * Support `Texture::set_ram_image_as()` for 3D and multiview textures (#1095)
- * TexturePeeker now supports cube maps (#1098)
- * TexturePeeker now supports integer texture formats
- GUI / Text
- * Workarounds for disappearing text and GUI items in multithreaded pipeline
- * Fix generated accent marks for some fonts appearing flipped
- * Included static fonts now include dotless i glyph
- * Fix DirectOptionMenu issues when changing items from item callback (#1125)
- Python API
- * Fix some Python 3 compatibility issues
- * Improvements to `direct.stdpy.pickle` pickle, esp. for Python 3
- * Fix `direct.stdpy.pickle` sometimes duplicating Panda objects
- * Add pickle support to various Panda classes
- * AsyncFuture can now store an arbitrary Python object as result
- * AsyncFuture.gather() now schedules coroutines on current task chain
- * Coroutine exceptions are no longer suppressed in optimized builds
- * Add ability to `await` all interval objects inside a coroutine (#909)
- * Fix garbled data when doing `base.win.properties.size` et al.
- * Fix Filename division operator in Python 3
- * Add Pythonic property syntax to various Panda classes
- * Add optional `delay=` argument to `taskMgr.add()`
- * Fix CollisionHandler's again_patterns property
- Physics / Collisions
- * Fix missing import in nodePath.subdivideCollisions() (#1084)
- * Support pickling of CollisionTraverser and CollisionHandler objects (#1090)
- * Improve CollisionBox debug visualization
- * Fix broken GlobalForceGroup module
- * Fix writing representation of AngularVectorForce
- * Better handling for some edge cases in PhysicalNode
- * Support bam serialization of BulletGhostNode objects (#1099)
- Deployment
- * Fix app immediately exiting on Windows if log_filename is not set
- * Allow generating log files with date/time in filename (#1103)
- * Automatically removes aux-display Config.prc lines for excluded plug-ins
- * No longer defaults to FMOD audio on macOS unless FMOD is explicitly bundled
- * Fix every app pulling in pep517 and numpy when building on some Linux distros
- * Fix building with pytz and pandas requirements
- * Some deterministic build support with PYTHONHASHSEED=0 and SOURCE_DATE_EPOCH
- * Fix harmless warnings about missing dependencies
- * Fix libbz2, libreadline and liblzma libraries being erroneously excluded
- Build / C++
- * Some macOS builds were erroneously not built with Cg shader support (#1119)
- * Fix code signatures being missing from arm64 wheels on macOS (#1123)
- * Windows builds now include missing DirectX 9 DLL (#1034)
- * Windows installer no longer pops up message box in silent mode (#1088)
- * Fix compatibility of Panda headers with C++17 and C++20 compilers
- * Support reproducible builds when SOURCE_DATE_EPOCH is set
- * Interrogate supports `__truediv__` and `__floordiv__` special methods
- * makepanda now looks for linux-libs-arm64 thirdparty directory in aarch64 build
- Miscellaneous
- * Assorted memory leaks fixed
- * Disable `vorbis-seek-lap`, which caused popping in ogg sounds (#1108)
- * Fix crash when playing video using older FFMpeg versions (#1085)
- * Fix flattening/egg loader bug messing up line strip geometry (#1122)
- * Fix egg lexer state not being cleaned up after error
- * multify respects SOURCE_DATE_EPOCH (but -T0 should be preferred)
- * Fix egg loader hanging when encountering unterminated quote or C-style comment
- * VirtualFileSystem::read_file() is now implemented for HTTP mounts
- * Fix regression causing crash in DIRECT tools
- * Fix repeatedly clicking object in DIRECT tools cause explosion of scaling node
- ------------------------ RELEASE 1.10.8 -----------------------
- Recommended maintenance release.
- * Support building for macOS 11 "Big Sur" and "Apple Silicon" (arm64)
- * Fix a memory leak, particularly noticeable with multithreaded pipeline (#1077)
- * Fix crash on macOS when unplugging device with threading active (#1082)
- * Fix error with build_apps not working with certain versions of Python
- * Fix DirectEntry/PGEntry flickering in the multithreaded pipeline (#1070)
- * Fix sounds resuming on reactivation if stop() was called while inactive (#559)
- * Collision traverser now releases GIL during traversal (#1033)
- * Fix crash caused by some gamepad drivers on Linux (#1066)
- * Add GraphicsPipe::get_display_zoom() for querying system DPI scaling
- * Skinning-enabled shaders can now properly render unskinned models as well
- * BitMask, SparseArray, BitArray types can now be pickled (#886)
- * VFSImporter now properly detects source file encodings in Python 3
- * Workaround for lighting bug with scenes imported using panda3d-gltf/blend2bam
- * Fix compilation error with Bullet 2.90+
- * Assimp library was updated in Windows thirdparty packages (#1020)
- * libCg is now shipped as library instead of framework on macOS (#1079)
- * Fix some erroneous warnings about missing modules in build_apps
- * Add warnings to build_apps when forgetting dependencies in requirements.txt
- * Add experimental TextureStage::M_emission mode
- * Add experimental p3d_TextureNormal, p3d_TextureEmission, etc. GLSL inputs
- * Fix ability to use deployment system when compiling without OpenSSL (#1073)
- * Fix assorted issues with rgbPanel
- * Fix comparison operator of RenderEffects object
- ------------------------ RELEASE 1.10.7 -----------------------
- This is primarily a bugfix release, but includes a few new features as well.
- Rendering
- * Add High Dynamic Range filter with ACES tone mapping to CommonFilters
- * Add sRGB filter to CommonFilters (to be used as fallback to framebuffer-srgb)
- * Fix (shadow) buffer no longer working after host buffer is destroyed (#890)
- * Fix rare bug with shader parameters not being set right across render passes
- * Fog density passed to shader now defaults to 0 when no fog is applied
- * Don't check sampler/light type mismatch for non-shadow-casting lights (#942)
- * Shader generator now makes use of Material alpha values if present (#912)
- * Support sRGB textures and framebuffers in OpenGL ES 2 renderer
- Asset Loading
- * Egg files can now be loaded with sRGB texture formats automatically
- * Fix maya2egg regression not creating animations properly (#1004)
- * Fix FMOD issue reading sounds from read-write-opened multifiles (#1002)
- Stability
- * Fix faulty collision detection when sphere is under polygon (#907)
- * Fix PStats misreporting an exploding number of RenderState/TransformState
- * Fix memory leak when removing a task that is awaiting a non-Panda future
- * Optimize RenderState cache for case where texture is replaced repeatedly
- * PNMImage add_sub_image() / mult_sub_image() now properly adds offset (#903)
- * Fix some ServerRepository issues in Python 3
- * Fix has_tags() still returning true after clearing all Python tags (#936)
- * Fix crash in BitArray.has_any_of()
- * Fix errors in PythonUtil.detectLeaks() and PythonUtil.report()
- * Fix runtime error during ControlManager deletion (#884)
- * Some error messages in nativenet are changed to debug messages
- * Fix TexMemWatcher crash when graphics memory reaches 1 GB (#975)
- * Fix a Triangulator crash dealing with certain invalid polygons (#985)
- * Fix in MultiplexStreamBuf::Output::write_string() (#902)
- * Fix a buffer overrun on FreeBSD when extracting very long command-line args
- Input and Windowing
- * M_confined mouse mode on Windows now confines mouse to client rectangle
- * Fix incorrect handling of shift modifier on macOS (#959)
- * Fix erroneous dpad_*-up events when emulating a dpad on Linux (#973)
- * Fix tab handling in DirectEntry with certain versions of Windows CRT (#994)
- * Fix parented window receiving WS_POPUP style on Windows (#915)
- Deployment
- * macOS app bundle now performs chdir into Resources folder upon launch
- * No longer defaults to FMOD audio on macOS unless FMOD is explicitly bundled
- * Improvements to Config.prc handling (strip comments, sort files, etc.)
- * Line buffering is now used on Windows when writing to log files (#947)
- * stdout/stderr output streams are now flushed on exit (#946)
- * Build paths are now properly stripped from compiled Python code (#991)
- * Update to support a change in location of numpy/Pillow libraries (#914)
- * Fix libffi-7.dll not being included in official wheels
- * PYTHONINSPECT mechanism is no longer enabled when building with optimizations
- * A few unnecessary warning messages are squelched
- * Windows builds now include previously missing CRT dlls
- API
- * Add pickle support to Datagram class
- * Unexpose a crashing CollisionPolygon constructor and method (#908)
- * FilterManager has new parameter to control framebuffer clamping
- * Add snake_case aliases for functions in DirectGuiGlobals
- * Global delete operator is now safe to call with a null pointer
- * Improvements to API reference documentation
- Build
- * Fix issues building with development versions Python 3.9 and 3.10
- * Fix an ABI incompatibility issue with MouseWatcher in NDEBUG builds
- * Fix incorrect NaN/inf detection in double-precision release builds (#987)
- * interrogate C++ parser supports arbitrary constant expressions in bitfields
- * interrogate C++ parser supports sizeof with constant expression
- ------------------------ RELEASE 1.10.6 -----------------------
- This is a recommended bugfix release that adds additional stability fixes.
- Stability
- * Fix deployment system to work properly with pip 20
- * Fix multithreading crash when garbage collecting render states (#499)
- * Fix crashes when hotplugging USB device on macOS Catalina (#847)
- * Fix crash when using Python OpenSSL module with wheel build of Panda3D (#851)
- * Fix a memory leak in task system in Python 3 (#873)
- * Fix detection for convex angles in visible geometry in collision system (#879)
- * Fix regression in 1.10.4 when overriding verticalScroll_frameSize (#864)
- * Fix DirectScrolledList scrollTo error in Python 3 (#880)
- Shaders
- * Fix OpenGL shaders not being properly applied across multiple buffers
- * Proper handling of texture rotations applied to normal maps (#808)
- * "//Cg profile" no longer affects subsequent shader loads (#863)
- * Add support for custom vertex columns when munging points to quads (#870)
- * Workaround for GLSL p3d_TextureMatrix[] input giving GL error on macOS (#846)
- * Fix ShaderTerrainMesh disappearing when enabling compressed-textures
- Input
- * Fix MouseWatcherRegion leave event sometimes being fired twice (#858)
- * Fix odd behavior when pressing multiple mouse buttons during capture (#843)
- * Fix support for dead key input on some X11 servers
- * Fix raw key events being sent down repeatedly when holding key on X11 (#874)
- * Numpad keys are no longer included in get_keyboard_map() on X11
- * Add labels to some keys in get_keyboard_map() on X11
- * Properly use cursor hotspot when loading custom cursor on macOS (#845)
- * Loading custom cursor on macOS now properly resolves against model-path
- Animation
- * unloadAnims no longer removes all control effects, only for given anims (#853)
- * AnimChannelScalarTable (for morph animations) is now exposed to Python
- * It's now possible to create a CharacterSlider with default value
- Pipeline
- * Fix assertion errors when model-cache-dir cannot be created (#790)
- * Textures with clear colors are no longer stripped from bam files (#844)
- * Support texture clear colors in bam files (requires "bam-version 6 45" in PRC)
- * Fix bam2egg skinning bug for models with default poses on joints
- * bam2egg supports multitexturing and multiple UV sets
- Build system
- * Add missing --cggl-incdir and --cggl-libdir options in makepanda
- * Reduce library size by not exporting symbols of linked static libraries
- * Wheels no longer unnecessarily include libpythonX.Y.a (#839)
- * makepanda now auto-disables plug-ins in Config.prc that were not compiled in
- * Fix refcounting of returned ReferenceCount-like objects in interrogate
- * Fix inability to build a .whl on Ubuntu
- * Fix erratic build failure in dcParser code
- * Fix compilation using Windows 8.1 SDK
- ------------------------ RELEASE 1.10.5 -----------------------
- This is a recommended bugfix release, especially for macOS users.
- * Fix DPI scaling issue in macOS 10.15 "Catalina" (#794)
- * Fix crash on macOS Catalina without "Input Monitoring" permission (#795)
- * macOS installer now installs to /Library/Developer/Panda3D (#760)
- * macOS thirdparty packages are now linked with libc++ (#584)
- * Homebrew Python should now locate Panda libraries correctly (#755)
- * Work around Tk bug cancelling Load Params in Particle Panel on macOS (#811)
- * Fix NaN assertions when particles get very large positions (#822)
- * Add support for Autodesk Maya 2020
- * Fix maya2egg erroring when running from a pip installation (#709)
- * Support DualShock 4 (2nd gen) controller on Windows
- * Support .pz and .gz compressed models in deployment system
- * Support implicit namespace packages in deployment system (#778)
- * Fix issues when using CEF Python on macOS with deployment system
- * Fix deployment system issues reading .pyc files in some Python versions
- * Fix error with distutils package when deploying in a "virtualenv" env (#747)
- * Fix "NameError: name 'mdef' is not defined" error when deploying (#721)
- * Deployment system now strips weird -psn_* argument passed to macOS GUI apps
- * Fix custom loader hooks sometimes not working with Actor (#750)
- * Fix defaults for package_data_dirs in deployment system (#779)
- * Fix issues with adding icons to deployed executable (#718)
- * Add PNMImage.quantize() that palettizes using median cut algorithm
- * Fix stereo and MRT FBO rendering in OpenGL ES (#815)
- * RTM_copy_ram mode is now fixed for multiview textures in OpenGL
- * Fix OpenGL multisample FBO issue with 16-bit float buffer (#756)
- * Fix DirectX 9 crash when resizing vertex buffer in certain ways (#824)
- * Workaround for infinite loop in Triangulator for certain polygons (#737)
- * Fix dcparser issue with unpacking uint64 and int64 (#751)
- * Fix ability to compile dcparser outside of the Panda3D codebase (#759)
- * Fix all direct.stdpy.threading2 threads behaving daemonically (#758)
- * direct.stdpy.threading2.Thread instances provide daemon and name properties
- * Workaround for Tkinter crash on Windows when resizing window (#586)
- * Fix possible stack overflow when reading many bytes from a stream (#754)
- * Fix mouse confinement region on Windows not updating on window resize (#727)
- * Fix mouse confinement being lost on Windows when window loses focus (#729)
- * Support adjusting particle birth offset time (#769)
- * Support building against OpenEXR 2.4 on Windows (#799)
- * Fix ability to pass a tuple to loader.loadModel
- * Fix an issue in interrogate with generating C bindings (#722)
- * Fix a variety of ABI compatibility issues with NDEBUG builds
- * Fix static linking of harfbuzz and freetype in makepanda
- * Fix ability to specify --python-incdir and -libdir to makepanda on macOS
- * `ls()` and `bam-info -ls` now list included animations
- * Fix white ambient color when loading PBR materials from .bam/cache (#828)
- * Fix inconsistent behavior when passing small values to shader inputs (#827)
- * Fix very rare NVIDIA driver crash when mixing GLSL and Cg shaders
- * Fix issue passing unicode to DirectScrolledList (#752)
- * Fix interrogate parser issue with function-like macro expansion
- * Interrogate now finds types nested in explicitly specialized template class
- * Improve performance reading all data from a file with direct.stdpy.file
- * PandaSystem now records whether libc++ or libstdc++ was used on macOS
- * makepanda.bat now builds against Python 3.7 by default
- * Many improvements to API documentation
- * pandac/input/*.in interrogatedb files are now included in .whl builds
- * Fix division exception in ServerRepository (#762)
- * Fix ShaderBuffer contexts not being cleared at GSG destruction
- * Fix DirectOptionMenu item text scale reset on item unhighlight (#768)
- * Python particle classes now have snake-case aliases
- * Fix crash printing out cached buffer contexts
- * Rudimentary, experimental, low-level handling of digitizer input devices
- ------------------------ RELEASE 1.10.4.1 ---------------------
- This release fixes only one critical regression: calling destroy()
- on a DirectGUI item would cause an exception.
- ------------------------ RELEASE 1.10.4 -----------------------
- This release fixes a regression with DirectScrolledList in 1.10.3,
- fixes various other bugs, and introduces a few minor features.
- * Fix exception trying to create DirectScrolledList
- * Fix flickering in DirectScrolledFrame and other scissor issues (#681)
- * Experimental support for Python 3.8
- * Support adding icons to deployed applications
- * Support non-affine (eg. projective) transforms in calc_tight_bounds
- * Allow setting notify-output after initial import
- * Fix macOS issue locating Panda3D using Python 2.7.13+ from python.org
- * Support for Maya 2019
- * On Windows, pip is now installed by the installer (#690)
- * Fix Actor.makeSubpart on models with pre-bound animations (#647)
- * Properly interrupt task manager if first task chain raises error (#692)
- * Fix return value of encrypt_string in Python 3 (#684)
- * Support writing loader plug-ins in Python
- * Fix reading multiple p3d_TextureMatrix[] values from GLSL shaders
- * Fix shader error flag not being set if GLSL compilation failed (#622)
- * Add NodePath.replace_texture() convenience method
- * Fix deadlock when building with SIMPLE_THREADS=1 (#704)
- * Fix DirectOptionMenu cancelFrame not working inside scrolled frame (#658)
- * Fix assertion when calling analyze() on geometry with strip cut index
- * Implement fallback in GL renderer when F_sluminance is not supported (#693)
- * Set reasonable limits for sliders in ParticlePanel
- * Fix for DirectEntry autoCapitalize feature on Python 3 (#628)
- * Fix various DirectGUI items not working before ShowBase is instantiated
- * Work around an MSVC compiler bug in the release build
- * PythonUtil.weightedChoice now raises IndexError on empty list
- * Support changing DirectScrollBar width after initialiation (#699)
- * Workaround for Bullet deadlock when adding shape to a scaled body (#689)
- * Support setting DirectEntryScroll entry after initialization (#702)
- * Fix some missing imports in directtools (#698)
- * Fix undefined behavior issue when using musl-libc
- * Update Eigen in Windows thirdparty packages to 3.3.7
- * Update metadata of pip wheels
- ------------------------ RELEASE 1.10.3 -----------------------
- This is another bugfix release that addresses a variety of issues
- in 1.10.2 and further improves the stability.
- * Fix crash when unplugging certain devices on macOS
- * Fix crash on macOS when using RIME input
- * Fix logging issues/crashes in apps deployed with Python 2.7
- * Fix issues when starting in fullscreen on Linux/X11
- * Fix mapping of several gamepads including Trust GXT 24
- * Fix Linux crash when no input devices are present
- * Unbreak support for matrix arrays in vertex data in OpenGL
- * Allow creating multisample FBO in OpenGL with non-MS host window
- * Support playing and looping compressed Ogg and WAV audio files
- * Fix generation of CollisionBox for transformed geometry in .egg
- * Fix Bullet rigid body transform not updating after reparenting
- * Fix sporadic color scales with lighting and custom GLSL shader
- * Prevent faulty shaders from shutting down GSG on some drivers
- * Allow None as either argument to OdeJoint.attach()
- * Fix BufferViewer when main window is not opened right away
- * Properly detect extension of pz/gz compressed video/audio files
- * Fix for invalid behavior of SparseArray methods to clear bits
- * FilterManager now allows overriding framebuffer properties
- * Fix detection of core-only OpenGL profile on some drivers
- * Add gl-forward-compatible config var for OpenGL context creation
- * Add paste-emit-keystrokes variable to disable Ctrl+V on Windows
- * Fix in-place |= operator on Panda types (such as SparseArray)
- * Fix rare FFmpeg "bad src image pointers" errors after seek
- * Fix uses of types.InstanceType in some obscure direct functions
- * Fix capsule-into-sphere collision test in degenerate case
- * KeyboardButton.ascii_key now also accepts a str character
- * Fix errors in various Tkinter DIRECT widgets
- * Expose save_egg_file/save_egg_data functions in Python API
- * Fix assertion error in BoundingBox.set_min_max
- * Fix typo in CollisionTraverser.respect_prev_transform property
- * Properly install Python bindings when building FreeBSD installer
- ------------------------ RELEASE 1.10.2 -----------------------
- This release fixes several more bugs, including a few regressions
- in 1.10.1. Upgrading is highly recommended.
- * Fix regression on Windows causing freezes and instability
- * Fix a memory leak issue in Python applications
- * Fix crash reading unaligned float4 column in GeomVertexReader
- * Fixes for switching to fullscreen at runtime on Windows and Linux
- * Fix incorrect display mode listing in some Linux distributions
- * Fix threading crash on Linux when using get_keyboard_map()
- * Support "from __future__ import division" for Panda types
- * Support building with Visual Studio 2019 in makepanda
- * Work around Assimp crash when loading multiple .ply models
- * On Windows, a Python 3-compatible version of Pmw is included
- * Fix ParticlePanel spam when hovering over File menu items
- * TexMemWatcher has been fixed for Python 3
- * Prevent macOS window getting stuck after base.destroy()
- * Fix assertion setting mass before shape with Bullet debug build
- * Don't error if DirectScrolledFrame is destroyed twice
- * Fix reference count corruption accessing task.__dict__
- * Fix writing to SequenceNode frame_rate property
- * Fix collider sort not copied when copying CollisionNode
- * Add OpenCollective backer file
- ------------------------ RELEASE 1.10.1 -----------------------
- This is a bugfix release intended to fix several issues in 1.10.0.
- * Fix crashes when gamepad is plugged in on 32-bit Windows
- * Fix deploy-ng error regarding 'exist_ok' on Python 2
- * Fix Linux install from pip not working with some mesa drivers
- * Fix compatibility issues with upcoming Python 3.8
- * Fix regression with Audio3DManager.setSoundVelocityAuto()
- * Fix issues when awaiting loader.loadModel in Python 3.7
- * Audio3DManager accepts tuple in setSoundVelocity/setListenerVelocity
- * Fix lighting being disabled when only an AmbientLight is active
- * Fix an error saving from Particle Panel in Python 3
- * Depth buffer now defaults to 24-bit on macOS (fixes flickering)
- * Fix no devices being detected on Windows with threading-model
- * Implement collision tests from Capsule and Box into InvSphere
- * Fix odd behavior and occasional crash in QuatInterval
- * Fix SpriteAnim error in particle system
- * Fix ShaderGenerator error when using too many shadowing lights
- * Fix interrogate crash in Python 3 with optional wstring args
- * Fix compilation errors for x86 Android platform
- * Fix permissions of directories created by installpanda
- * Improvements to API reference documentation
- * Fix incorrect features printed out when printing an InputDevice
- * Support cross-compiling for Android platforms in makepanda
- * Work around various bugs when compiling with OS X 10.7's libc++
- * Fix wrong error sometimes being reported when loading plug-in
- * Allow getting NodePath from CullTraverserData object
- * Add config options to Assimp loader for generating normals
- * Fix multisampling in floating-point framebuffers on OpenGL
- * Parse egg files with 4-component tangents (must be 1 or -1)
- * StencilAttrib.make() write_mask argument is now optional
- ------------------------ RELEASE 1.10.0 -----------------------
- This is a major release with significant changes. Please review the
- changes when upgrading. The list below is by no means exhaustive, but
- should contain the most important changes.
- General
- * Experimental ability to build for Android
- * New input framework to natively support gamepads, joysticks, etc.
- * Multi-threaded render pipeline is a lot more stable now
- * New setuptools-based deployment pipeline
- * Improvements to mouselook smoothness
- * Cache is now at $XDG_CACHE_HOME/panda3d (~/.cache/panda3d), not ~/.panda3d
- * Addition of unit test suite
- * Many improvements to thread safety
- * Many performance improvements
- * Tons of bugfixes
- * Big style cleanup of C++ source code
- Python API
- * Complete support for Python 3
- * Support for coroutines and async/await
- * Property interfaces have been added for many settings
- * More flexible handling for keyboard arguments in C++ APIs
- * Python bindings are completely separated out of the C++ libraries.
- * Interrogate binding generator has many improvements.
- * Use of pandac.PandaModules is discouraged, use panda3d.core et al
- * Use of libRocket is discouraged due to lack of Python 3 support
- * Tasks are now sorted in addition order when lacking a sort value
- * Fixes iris/fade transitions for extreme aspect ratios
- * WeakNodePath is now exposed to Python
- * WindowProperties.size(x, y) deprecated; use WindowProperties(size=(x, y))
- * Calling bare run() is deprecated, use base.run() instead
- * downcastTo*() methods have been removed, they were already no-ops
- Rendering
- * Add new shader-based terrain rendering method (ShaderTerrainMesh)
- * The default ColorAttrib mode is now T_vertex
- * The ColorAttrib T_off mode now properly disables vertex colors entirely
- * Make handling of color attributes more consistent between renderers
- * Ability to create an OpenGL core profile context; set "gl-version 3 2"
- * Experimental support for reverse-Z rendering for best depth precision
- * sRGB framebuffers supported more widely
- * Support for infinite near/far clip in lens
- * Add some PBR material parameters to material class
- * Addition of more built-in GLSL shader inputs; see manual.
- * Add p3d_FragData[] GLSL output for MRT in GLSL 1.30
- * Add flag enabling vertex shader control over point size
- * Support signed ints and double-precision floats in vertex data with GLSL
- * Support unsigned 11/10/10-bit floating-point textures and vertex data
- * Support for SSBOs via ShaderBuffer class
- * Support OpenGL FBO buffers without any attachments
- * Support passing uint variables to GLSL shader
- * Allow rendering objects with empty vertex data (for vertex pulling)
- * Add LogicOpAttrib, for supporting logical operator blending
- * Improvements to OpenGL ES support
- * Support for geometry with adjacency information
- * Change default alpha blending to improve blending rendered result
- * New method for obtaining native OpenGL texture object
- * Support windowless offscreen rendering on macOS
- * Panda resets OpenGL state better before and after draw callbacks
- * OpenGL renderer better supports debugging tools like apitrace
- * Support fixed-depth billboards, useful for 2D tags that don't change size
- Shader generator
- * Significant performance improvements
- * Support for point light shadows
- * Hardware skinning support
- * Changes to match fixed-function pipeline better
- * Fixes for normal vector normalization
- * Support multiple normal maps (uses Reoriented Normal Mapping)
- * Tracks modifications to materials and texture stages automatically
- Lighting
- * Allow specifying light color based on color temperature
- * Setting specular color of a light separately is deprecated
- * New GLSL inputs to make implementing lighting in shaders much easier
- * Add representation for sphere light and rectangle light
- * Efficiency improvements for passing light information to shader
- * Interocular distance for shadow cameras now always defaults to 0
- * Add low-level lighting module from RenderPipeline
- Textures
- * Support cube map arrays
- * Support buffer textures
- * Many more texture formats supported
- * BC4 and BC5 compression modes supported
- * Proper depth textures supported in DirectX 9 renderer
- * set_ram_image(_as) directly supports buffer protocol
- * TexturePeeker supports more formats and component types
- Text
- * Dramatic improvements to text rendering performance
- * Support for HarfBuzz for higher-quality text shaping and kerning
- * Support for right-to-left text
- * Support for signed-distance-field rendering in egg-mkfont
- Audio/video
- * The default unit for audio is now 1 meter for each Panda unit.
- * Native .flac loader
- * Support videos with alpha channel in ffmpeg
- * OpenAL stability improvements, especially on macOS
- * Support loading .opus files with libopusfile
- * Fix various memory leaks
- Physics / collisions
- * CollisionTube is renamed to CollisionCapsule.
- * Box-box collision test is improved to work well with the Pusher
- * More box tests for collision system: box-into-plane, box-into-poly
- * Capsule (tube) can be used as "from" shape into plane, sphere, capsule, box
- * Bullet objects are serializable to .bam files.
- * Bullet bindings are now thread safe.
- * Bullet debug drawer is more efficient; no longer inherits GeomNode.
- * Various fixes to bullet vehicle wheel synchronization
- * PhysX bindings are deprecated.
- Pipeline / loading
- * Support for Assimp library to load a broad variety of model formats
- * Ability to specify min-lod, max-lod, lod-bias in .egg file
- * Egg file materials support PBR-style material parameterization
- * Support loading more DDS files, including DX10-style ones
- * Add support for OpenEXR and HDR textures
- * Support line/point thickness in bam2egg
- * bam2egg no longer inserts a vestigial ModelNode at the top
- * bam2egg supports depth test, offset, cull bin attributes
- * Accept a .gz file wherever a .pz file is accepted
- * egg-palettize supports mirror and border-color wrap modes
- * More robust checks against memory corruptions when loading bad .bam files
- * Support for Maya 2017 and 2018
- * Support preprocessing GLSL shaders created with Shader.make
- Build
- * We now require using MSVC 2015 or 2017 to compile on Windows.
- * At least GCC 4.8 is now required.
- * With GCC/clang, enabling C++11 is now required.
- * Allow building with more recent ffmpeg versions
- * Support for old FFMpeg versions (before 1.1) dropped.
- * The ppremake build system has been removed.
- * Support for OpenSSL versions before 0.9.7 has been dropped.
- C++
- * Use of NULL is replaced with nullptr
- * WeakPointerTo now requires use of lock() method for thread safety
- * Mutex et al now satisfy C++11 Lockable constraints
- * Panda headers no longer contain `using namespace std;`
- * PN_int32 et al have been removed, use stdint.h types instead
- * The need to link with pystub and add Python include dirs is removed.
- ------------------------ RELEASE 1.9.4 ------------------------
- One of the bugfixes in the last 1.9.3 release introduced a regression,
- therefore it was decided to make another 1.9.x release.
- * Fix 1.9.3 regression with generating geometry in threaded pipeline
- * Various compile warning fixes
- * Fix occasional crash in PNMImage::quick_filter_from()
- * Fix issue taking screenshots from an OpenGL FBO buffer
- * Fix various issues with MeshDrawer
- * Fix issue with collision sphere generation in bam2egg
- * Fix compile errors with more obscure Python configurations
- * Fix assert when using Texture.load_sub_image to load whole image
- * Fix fsm FourState
- ------------------------ RELEASE 1.9.3 ------------------------
- This issue fixes several bugs that were still found in 1.9.2.
- * Fix crash when using homebrew Python on Mac OS X
- * Fix crash when running in Steam on Linux when using OpenAL
- * Fix crash using wx/tkinter on Mac as long as want-wx/tk is set
- * Fix loading models from 'models' package with models/ prefix
- * Fix random crashes in task system
- * Fix various race conditions causing threading issues
- * Fix memory leaks in BulletTriangleMesh
- * Fix loading old models with MovingPart<LMatrix4f>
- * Improve performance of CPU vertex animation somewhat
- * Show framebuffer properties when fbprop request fails
- * Show error instead of crash on use of object before __init__
- * Fix hang on exit when using Python task on threaded task chain
- * Fix inability to get RGBA renderbuffer in certain cases
- * Work around GLSL issue with #pragma and certain Intel drivers
- * Improve performance of texture load and store operations
- * Fix crashes with pbuffers on Intel cards on Windows
- * Support for Autodesk Maya 2016.5
- * Add shadow-depth-bits config var to control shadow map depth
- * Fix cull issue when rendering cube map (or any multi-lens setup)
- * Fix crash rendering with the same camera to different contexts
- * Fix compile error when making static build with DX9 renderer
- * Fix assertion when using aux render targets in DX9
- * Work around Cg bug generating invalid ASM for saturated tex loads
- * Fix issues with certain Cg shader inputs in DX9
- * Support uint8 index buffers in DX9
- * Fix occasional frame lag when loading a big model asynchronously
- * Fix interrogate parsing issue with "const static"
- * Add back missing libp3pystub.a to Mac OS X SDK
- * Fix RAM caching of 2D texture arrays
- * Fix Ctrl+C interrupt propagation to runtime applications
- * Support for InvSphere, Box and Tube solids in bam2egg
- * Preserve "intangible" and "level" collide flags in bam2egg
- * Add normalized() method to vectors
- * asyncFlattenStrong with inPlace=True caused node to disappear
- * Fix asyncFlattenStrong called on nodes without parent
- * Fix is_playing() check when playing an animation backwards
- * Windows installer no longer clears %PATH% if longer than 1024 chars
- * Fix inoperative -tbn/-tbnall/-tbnauto options in egg-optchar
- * Fix tinydisplay texture errors on shutdown
- * Fix mipmap filtering issues in tinydisplay renderer
- * Fix exception when creating intervals before ShowBase is started
- * Fix rare X11 .ico cursor bug; also now supports PNG-compressed icons
- * Add keyword argument support to make() methods such as Shader.make()
- * Fix compilation errors with Bullet 2.84
- * Fix exception when trying to pickle NodePathCollection objects
- * Fix error when trying to raise vectors to a power
- * GLSL: fix error when legacy matrix generator inputs are mat3
- * Now tries to preserve refresh rate when switching fullscreen on Windows
- * Fix back-to-front sorting when gl-coordinate-system is changed
- * Now also compiles on older Linux distros (eg. CentOS 5 / manylinux1)
- * get_keyboard_map now includes keys on layouts with special characters
- * Fix crash due to incorrect alignment when compiling Eigen with AVX
- * Fix crash when writing 16-bit .tif file (now silently downsamples)
- ------------------------ RELEASE 1.9.2 ------------------------
- This is a minor bugfix release, fixing a few minor issues that
- remained in the 1.9.1 release, including:
- * Fix compile errors with more recent versions of ffmpeg
- * Include .lib files for pyd modules in Windows SDK
- * packp3d now recognizes default egg-object-type definitions
- * Fix issues with sphere-into-box and box-into-sphere collisions
- * Texture VRAM usage is now correctly reported by pstats
- * Support for reading BMP files with alpha channel
- * Fix OpenGL crashes in very ancient OpenGL versions
- * Fix rare compile issues and crashes with esoteric Python set-ups
- * Fix crash when extracting texture that's not a multiple of 4 bytes
- * Work around buggy NVIDIA driver that reports _main_* shader inputs
- * Add version of transform_vertices that accepts a SparseArray
- * Clamp shininess to 0 to avoid GL error when shininess < 0
- * Fix various bugs in RopeNode and NurbsCurveEvaluator
- * Fix clock-mode Config.prc settings
- * NodePath render_mode setters no longer reset wireframe color
- * Fix constant reloading of texture when gl-ignore-mipmaps is set
- * BamReader now releases the GIL (so it can be used threaded)
- * Fix AttributeError in direct.stdpy.threading module
- ------------------------ RELEASE 1.9.1 ------------------------
- This minor release fixes some important regressions and bugs found
- in 1.9.0, but also introduces a few minor features.
- It also reintroduces the deployment tools that were absent from
- the previous release.
- The following issues were fixed:
- * SDK now properly installs in Mac OS X 10.11 "El Capitan"
- * Windows 8.1+ no longer applies DPI virtualization to Panda window
- * Fix ffmpeg library load issue on Mac OS X
- * Fix issues running maya2egg on Mac OS X
- * Fix compiler errors on different platforms
- * Fix various rare crashes
- * Fix crashes on shutdown in threaded pipeline
- * Fix low-level threading crash on ARM machines
- * More reliably and robustly handle failures opening OpenAL device
- * Textures were not being scaled to power-of-2 in some cases
- * Correct scaling of normal vectors with flatten operation
- * Correct positioning of viewing axis when showing lens frustum
- * Add dpi-window-resize option to auto-resize window on DPI change
- * Fix assertions when alpha-file-channel references unknown channel
- * Use OpenGL-style vertex colors by default on non-Windows systems
- * Default vertex column alignment is now 4 bytes
- * Add PNMImage premultiply/unpremultiply methods.
- * Fix incorrect parsing of numbers with exponents in Config.prc
- * Fix for reading URLs mounted via the virtual file system
- * Fix shader generator memory leaks and runtime performance
- * Fix shader generator scaling of binormals and tangents
- * Expose _NET_WM_PID to window managers in X11
- * Fix a range of bugs in tinydisplay renderer.
- * Don't error when setting lens far distance to infinity
- * Allow passing custom lens to saveCubeMap/saveSphereMap
- * Fix errors in saveCubeMap/saveSphereMap in threaded pipeline
- * Fix DynamicTextFont.makeCopy()
- * Make Texture memory size estimation more accurate
- * Fix various window resizing issues
- * Fix PandaSystem.getCompiler() value for clang (it reported gcc)
- * x2egg no longer replaces face normals with vertex normals
- * Include Eigen headers in Mac and Windows SDK
- * Added geomipterrain-incorrect-normals setting, default=true
- * DisplayInformation resolution list was missing on Windows
- * Upgrade FMOD and Bullet versions on Windows and Mac OS X
- * Various performance optimizations
- * Fixed various other bugs not listed here.
- Fixes and improvements for the runtime:
- * Fix splash screen freezing in the X11 web plug-in
- * pdeploy will now handle extracted files (eg. .ico and .cur)
- * Added more options for customizing splash screen
- * Fix missing xml and ast modules from morepy package
- * Certificate dialog is now localized to various languages
- * Fix packp3d error when Python file is not in a package
- * Pass on failing exit status from packaged application
- * Remove annoying ":Packager(warning): No such file" warning
- * Fix issue installing pdeploy-generated .pkg on OS X 10.11
- Fixes for the Python API:
- * Fix mysterious and rare crash in tp_traverse
- * Bullet step function accidentally defaulted to step size of 0
- * Fix overflow of file offsets (eg. when seeking in huge files)
- * Fix regression with memoryviews
- * Fix hasattr/getattr of vector classes for invalid attributes
- * Allow passing a long to methods accepting an int
- * Fix crash when passing None to Filename constructor
- * MouseWatcherGroup was erroneously not exposed in 1.9.0
- * ShowBase no longer unmounts VFS when shutting down
- * No longer requires setting PATH to import panda3d.*
- * DirectDialog default geom is once again respected
- * DirectDialog no longer overrides custom frameSize
- * Fix WebcamVideo/MicrophoneAudio.getOptions() methods
- Changes relating to the OpenGL renderer:
- * Various performance improvements
- * Fix point/line thickness setting
- * Improve GLSL error reporting
- * Fix Intel driver issues, particularly with geometry shaders
- * Add more error checking for parameter types
- * Integer shader inputs were not being converted to float properly
- * Fix crash passing an undersized array to a GLSL shader input
- * p3d_ColorScale et al may now be declared as vec3
- * Fix flickering when using trans_model_to_apiview in Cg
- * Support wireframe and point rendering modes in OpenGL ES
- * Fix issue with model disappearing in rare cases with GLSL
- * Fix ColorWriteAttrib not working as it should
- * Allow deactivating PStats collectors for GPU timers
- * Memory residency of graphics buffers now tracked by PStats
- * Allow changing OpenGL coordinate system with gl-coordinate-system
- Fixes for libRocket integration:
- * libRocket did not work on Mac OS X in 1.9.0
- * Fix inconsistent behavior with non-power-of-2 textures in rocket
- * Use model-path for finding libRocket assets
- * Add missing keys to libRocket keymap
- * libRocket elements showed up white in tinydisplay
- New features:
- * Add -L (lighting) and -P (graphics pipe) pview options
- * Add M_confined mouse mode that keeps cursor in window
- * Add sample program demonstrating mouse modes
- * bam2egg supports collision sphere and plane solids
- * p3d_TransformTable GLSL input backported from 1.10 branch
- * Add openal-device setting for selecting OpenAL audio output
- * Add limited modification timestamp tracking for Ramdisk mounts
- * Support for Autodesk Maya 2016
- ------------------------ RELEASE 1.9.0 ------------------------
- This is a major release with many exciting new features!
- Beware of bugs.
- The list below contains a subset of the changes introduced:
- * We now offer 64-bit Windows and Mac OS X builds.
- * Switch to MSVC 2010; no more assembly manifests.
- * Cocoa port for better Mac OS X support, esp. newer versions.
- * We now compile the Python modules into panda3d/*.pyd modules;
- no more imp.load_dynamic hackery needed.
- * Support for GPU profiling in OpenGL, see pstats-gpu-timing
- * sRGB framebuffers, see framebuffer-srgb
- * sRGB texture support, see Texture::F_srgb et al.
- * Integer vector support, including passing to shaders
- * Native .ogg vorbis and .wav loader (does not require ffmpeg)
- * FFmpeg support is a separate plug-in module now, libp3ffmpeg.
- * Sample programs are now part of the source code repository
- * Can be built with Python 3 (highly experimental)
- * Improvements to Windows installer
- * M_filled_wireframe rendering mode
- * Support specifying sampler state separate from textures
- * Support for bindless texture clearing
- * Texture LOD bias and min/max LOD settings
- * Framebuffer properties allows separate red/green/blue bits
- * Explicit float color and float depth specification in fbprops
- * Coverage samples settable via FrameBufferProperties
- * Stereo buffer implementation in OpenGL via FBOs
- * Support enumeration of pixel formats in WebcamVideo
- * Frame rate meter can be configured to show milliseconds
- * Changes to improve font crispness with default settings
- * Fix assertion error when using more than one GraphicsEngine
- * raw-w, raw-a, etc. keyboard events for layout-independent input
- * Allow querying active keyboard layout via win.get_keyboard_map()
- * Distinguish between lmeta and rmeta keys on Mac OS X
- * Floating-point image manipulation API, support float tiffs
- * Various new 16-bit and 32-bit and int texture formats
- * Man pages are now available for the majority of utilities
- Pipeline:
- * Fix bugs with <Collide> group transformations in .egg
- * Don't create unnecessary intermediate node when loading .egg
- * bam2egg supports materials, and correctly converts animations
- * dae2egg has some skeletal animation support
- * Support Maya versions up to 2015
- OpenGL renderer changes:
- * Error checking is now OFF by default for performance reasons,
- set gl-check-errors or gl-debug to true to enable.
- * GL 4.2 shader_image_load_store support (incl. multi-bind)
- * Layered render-to-texture (using geometry shaders)
- * Seamless cube maps (on by default), see gl-cube-map-seamless
- * Added gl-debug for improved debug output support
- * Added GL object labels when gl-debug is enabled
- * gl-dump-compiled-shaders can be used to dump program binaries
- * Direct3D-style NT_packed_dabc vertex arrays now directly supported
- * Native rendering of line strips, using primitive restart
- * Immutable texture storage support (disabled by default)
- * Bindless texture support (disabled by default)
- * Specular component is now computed separately in FFP
- Shader system:
- * Support for tessellation shaders
- * Support for compute shaders via ComputeNode
- * GLSL preprocessor with "#pragma include" support
- * Much better coverage of shader inputs in GLSL
- * GLSL error messages now show source filename
- * Fixes apiclip_of_x shader inputs
- * Matrices can be passed directly to setShaderInput
- * Support binding images to shaders
- * Viewport array support
- Optimizations and performance improvements:
- * Use of C++11 move semantics to reduce refcounting overhead
- * Build with Eigen by default for faster linear math
- * Dramatic overhead reduction of generated bindings
- * Streamline culling process
- * Tighter bounding volume generation
- * Take advantage of CPU features for bit operations
- * Circumvent bounding volume generation when not required
- * Optimizations for interned strings
- * Use of GCC atomics should improve 64-bit Linux performance
- API features:
- * Buffer protocol support for textures and arrays
- * Interrogate supports various C++11 features
- * Expose TextGlyph interfaces for making custom text renderers
- * Better handling of default arguments for many functions
- * Cyclic references can sometimes be tracked through tasks
- * ShowBase clean teardown possible
- * API documentation is more accurate
- * Improve interfaces for interop with other applications
- Deprecated features:
- * Use of pandac.PandaModules is discouraged; use panda3d.core
- * Deprecate DirectStart and global run() function; use ShowBase
- * Remove old decal system
- * Remove Direct3D 8 renderer
- * Remove M_light_vector tex gen mode and FFP-based bump mapping
- Bug fixes:
- * Various point rendering issues are fixed now
- * Fix pview issue with 1-frame and/or multiple animations
- * Fixes for multisampling in FBOs
- * Fix aspect ratio of frame rate meter
- * Support NaN and infinity values in Config.prc variables
- * Fixes for webcams on Linux that do not output Huffman tables
- * Better support for non-basic Cg shaders on non-NVIDIA cards
- * Many others
- ------------------------ RELEASE 1.8.1 ------------------------
- This is a bugfix release, fixing many issues in 1.8.0.
- However, there may still be some (minor) bugs.
- * Fix a host of issues related to GLSL shaders
- * Fix incorrect registry entry for Python in Windows installer
- * pdeploy generated binaries with wrong architecture on Linux
- * Fix runtime error in pdeploy when building for Windows
- * Support for Maya 2013
- * ARToolKit now also works on Mac OS X
- * WM_CLASS can be set using x-wm-class and x-wm-class-name
- * No longer crashes when Xrandr is not supported
- * Aux normals are now also normalized when no lights are applied
- * Fix hidden cursor when switching fullscreen on Mac OS X
- * PackageInstaller didn't add packages to system paths
- * Allow disabling custom cursor on Windows
- * Fix incorrect panning of 3D audio
- * Fix omission of textures of non-standard format in ShaderGenerator
- * Fix compile issue with newer gcc versions
- * Fix circular reference held by ActorNode
- * Window is now correctly centered on Windows
- * Fix confusion with depth range of Lens::project()
- * Now successfully compiles against recent SSL versions on Windows
- * Fix incorrect Cg TEXUNIT0 binding during the first frame
- * TextNode::set_text_scale now correctly scales spaces as well
- * Expose AudioLoadRequest to Python (for async audio loading)
- * Support for the libRocket debugger
- * Fix newline entry in libRocket
- ------------------------ RELEASE 1.8.0 ------------------------
- This is a major release, with several big new features. As such,
- it is likely to contain bugs.
- * True threading support now enabled in the default build
- * Pipelined rendering: app, cull, and draw can run in parallel, each
- in their own thread
- * Web plugin is more robust, and better supports Safari and Chrome
- * Plugin runs properly when the username contains non-ASCII characters on Windows
- * Added appRunner.p3dFilename and appRunner.p3dUrl to provide p3d
- location
- * Multifiles (and p3d files) now make a distinction between binary and
- text files
- * OccluderNode added for explicit occlusion culling
- * Ambient occlusion generation for terrain
- * Fixed bug where Windows installer wipes %PATH% when it's too long
- * Added fog support to the shader generator
- * Added normal_gloss texture mode
- * Added a custom color option to the cartoon filter
- * Support for texture arrays in shaders
- * Better shader support in pandadx9
- * Fix some issues with cube map buffers
- * Can be compiled to use double-precision floats throughout, instead
- of the default of single-precision floats. (Graphics drivers still
- use single-precision floats, of course.)
- * Can be compiled with the optional Eigen library to provide SSE2 support
- * Can be compiled with SpeedTree support
- * Can be compiled on MSVS2010, and/or Win64. (These builds not
- provided by default.)
- * Support for the Bullet physics engine
- * Support for the libRocket GUI library
- * Support for stereo/multiview textures
- * Substantial performance improvements to movie textures
- * TGA files with alpha channel now load correctly
- * New "Ramdisk" mount type available for the VFS
- * The VFS is now writable for ramdisk files and true on-disk files
- * pdeploy -i generates a custom icon for the installed game
- * wx and tk work better on OSX
- * Panda windows can be embedded within wxPython windows on all
- platforms (including OSX) with the new WxPandaWindow class
- * Added base.pixel2d for pixel-based 2-D coordinates
- * Python-based swizzling of Panda vectors, e.g. vec2.xyxy
- * Python programmers can now optionally use the original unmangled C++
- name for methods and classes, e.g. model.set_pos(LPoint3f(1, 2, 3)).
- * Command-line filename globbing now supported on Win32, e.g. egg-texture-cards *.png
- * DirectGui works with nonstandard coordinate-system in effect
- * Egg loader handles double-sided polygons a little differently by
- default now, for better render performance but more memory usage
- (use "egg-emulate-bface 0" to restore the old behavior if needed).
- ------------------------ RELEASE 1.7.2 ------------------------
- This release fixes several bugs that were found in 1.7.1.
- * Fix crash on GLX implementations that have no FBConfig support
- * Fix trouble with buffers on Mac OS X
- * Un-break shadow samplers in Cg shaders
- * Fixes for relative mouse mode on OSX
- * Pdeployed apps on Windows no longer show a console window
- * Fix relative file paths for license files in pdeploy
- * Ppatcher no longer writes out faulty checksums
- * Fix plugin failure to read from cache
- * Include missing X11 extension libs in runtime distribution
- * Fix disappearing windows with CEGUI's OpenGL renderer
- * Fixes for makepanda on FreeBSD
- * Fix LightRampAttrib crash
- * Fix bug with two-parameter Lens::set_fov
- ------------------------ RELEASE 1.7.1 ------------------------
- This release introduces several significant bugfixes,
- but also introduces various minor new features. Although
- it is a minor release, it may also introduce new bugs.
- * Many improvements and bugfixes to pdeploy
- * Vectors now support swizzle/write masks (e.g vec.xz)
- * Fixes for depth buffer instabilities on Windows
- * Better webcam support on Linux using Video4Linux
- * Custom cursor support in X11
- * Static functions that return a list are now properly wrapped
- * ODE objects now have getId() exposed to Python
- * NodePath.findMaterial now works properly
- * Remove unnecessary dependency on GLU
- * Arithmetic operators to PNMImage
- * Various OpenGL ES-related bugfixes
- * Support for EGL and OpenGL ES in makepanda
- * Fix a crash with the Maya converters
- * Include missing p3d tools on Windows
- * Include tinyxml as part of the source
- * Updates to PandAI
- * Compile issues with latest OpenSSL fixed
- * Fix static-init ordering issues with OpenSSL
- * Several other bugfixes and features not listed here
- ------------------------ RELEASE 1.7.0 ------------------------
- This major release introduces tons of cool new features. As it
- is highly experimental, it is not recommended for production use.
- * Support for running Panda3D apps in a browser via web plugin
- * Fully automatic shadow mapping
- * Easy to use distribution and packaging framework
- * Integrated support for NVIDIA PhysX
- * Support for GLSL shaders
- * Geometry shaders, both in Cg and GLSL
- * Improved Cg support
- * Hardware geometry instancing support
- * Runtime fullscreen toggle
- * Unix/X11 resolution querying/switching support
- * Experimental Unix/X11 support for relative mouse mode (via xf86dga)
- * New, cleaner import conventions, replacing PandaModules
- * Parallax mapping
- * Support for OpenGL ES 1 and 2
- * Experimental Screen Space Ambient Occlusion
- * New collision solid: box
- * Working FreeBSD support
- * Blur / Sharpen postprocessing filter
- * Many improvements to the Shader Generator
- * Fixes and improvements to DistributedObject network system
- * New AI libraries
- * Added MeshDrawer2D
- * Most Panda objects now work with the pickle/cPickle and copy modules.
- * Windows build now compiled for Python 2.6
- * Tons of new features and bugfixes
- ------------------------ RELEASE 1.6.2 ------------------------
- This is mainly a bugfix release. Also fixes some bugs that
- were accidentally introduced in 1.6.1.
- * Fixed a static-init issue in ptloader on Windows
- * Fixed texture scaling issue when using buffers
- * x2egg is no longer broken
- * Threading in OSX build fixed
- * Fixed issue with flickering colors in Shader Generator
- * Eggcacher now uses less RAM
- * Missing 'models' dirs in packpanda games fixed
- * Eggcacher step in Panda3D installer is now optional
- * Fixes broken shortcut links in Start Menu on Windows
- * Shader Generator now supports clip planes
- * Bug with combine modes in Shader Generator fixed
- * Fixed bug with Texture::make_copy()
- * Bug with Actor LOD fixed
- * Fixed bug with missing geometry in Collada converter
- * OdeUtil.collide instability fixed
- * OdeBody setData/getData methods exposed to Python
- ------------------------ RELEASE 1.6.1 ------------------------
- This release fixes some bugs found in 1.6.0, and adds some
- minor features as well.
- * Threading layer is now enabled by default
- * cTrav.showCollisions fixed
- * Fixed broken MovieTexture
- * OpenAL is now stable on Linux, too
- * OpenAL now supports dynamic playrate changing
- * MayaPandaTool now handles NURBS correctly
- * Fixed particle panel and directtools bugs
- * Fix crash with collada exporter on Windows
- * ARToolkit jittering fixed
- * Now possible to override shader vertex/fragment profiles
- * Maya exporter fixed on OSX
- * Fixed depth texture crash for padded textures
- * Fixed bug that made OdeUtil.collide return empty geoms
- * Fixed crash with render.flattenStrong() when using trackball
- * Several improvements to the ODE layer
- * Performance improvements to GeoMipTerrain
- * GeoMipTerrain.setBorderStitching to fix seams between terrains
- * installpanda.py for installing Panda on Linux without deb/rpm
- * Several other minor bugfixes
- ------------------------ RELEASE 1.6.0 ------------------------
- This release introduces several major new features and
- significant bugfixes. It is likely to be buggy, like most
- x.x.0 releases.
- * Lightweight threading framework without runtime overhead
- * Makepanda now fully supports OSX
- * DDS textures are now supported
- * COLLADA->egg converter added
- * New C++-based Task system, which includes async threading support
- * Support for asynchronous on-demand loading of textures and/or animations
- * New software-based renderer "tinydisplay"
- * More pythonic features: iterable methods, implicit parameter casting
- * Packpanda now also supports Linux
- * Added libsquish support for DXT compression
- * New MeshDrawer class for realtime mesh manipulation
- * Infamous FBO bug fixed
- * Preliminary support for Volumetric Lighting
- * Shader k-parameters can now contain underscores
- * Fixed OpenCVTexture and ARToolKit on Linux
- * GeoMipTerrain now supports multi-channel heightmaps
- * GeoMipTerrain features new near/far LOD system
- * GeoMipTerrain performance improved
- * CallbackNode added to support low-level drawing callbacks from Python
- * Fixed some minor but annoying OpenAL/FFMpeg issues
- * Fixed bug with lcontrol and rcontrol on Linux
- * Fixed bug regarding icon filenames
- * Multisampling fixed on Linux and OSX
- * Left and right scrolling events now available
- * Several improvements to API reference
- * ShaderGenerator now supports several more blend modes and color scale
- * .x converter now supports AnimTicksPerSecond
- * vfs-mount-url can load models directly off the web
- * Smoother transitions in FadeLodNode
- * Dynamically-generated outline on fonts: loader.loadFont(outlineWidth = xxx)
- * Texture.getRamImageAs()
- * base.toggleTexMem()
- * Text generation performance optimization
- * Various performance optimizations
- * Several more minor bugs fixed
- ------------------------ RELEASE 1.5.4 ------------------------
- This is a bugfix release, fixing the problems found in 1.5.3.
- * Fixes packpanda crash
- * Linux build accidentally got configured for OpenAL
- * EggTexture now writes wrap modes and types correctly.
- * Fixes an occasional crash in TextureAttrib
- * DirectEntry no longer crashes when moving cursor in a full box
- * Several bugs in RigidBodyCombiner fixed
- * Normals generated by GeoMipTerrain are now correct
- * Bugs fixed in DirectGrid
- * Linux users can now use WindowProperties.setParentWindow
- * Fmod now compiles on 64-bits
- * Fixed several bugs in the API reference generator
- * EggNurbsSurface is now exposed to Python
- * Fixes a bug in PGButton
- * GeoMipTerrain set_heightfield fixed
- * Several bugs in the Max exporter:
- - Now generates binormals and tangents
- - Pview output fixed
- - Overwrite confirmation fixed
- - Export type 'Both' now works correctly
- * Several other bugs not listed above.
- ------------------------ RELEASE 1.5.3 ------------------------
- This release fixes most of the remaining bugs, but it adds
- some new features as well.
- * License changed to BSD
- * Fixes x-file parser for real, this time.
- * Fixes serious bug in shader generator
- * Adds MSVCR71 and MSVCP71 back to the distro (for python)
- * Fixed a bug in GeoMipTerrain
- * Adds support for .egg.pz to packpanda --bam
- * Turns on libpandaode support
- * Mayapandatool fixed
- * Added support for 3dsmax 2009
- * Max exporter overhauled
- * Improved support for 64-bits, gcc 4.3 and OSX
- ------------------------ RELEASE 1.5.2 ------------------------
- This fixes just one serious bug: release 1.5.1 accidentally
- reversed the TextureStage sort order.
- ------------------------ RELEASE 1.5.1 ------------------------
- Mostly a bugfix release, but adds some minor features too.
- - The x-file parser now is back to being case-insensitive, as it should be.
- - Panda plugins now use an explicit plugin-path.
- - Better DLL-hell protection under windows.
- - Added GeoMipTerrain (but no docs yet)
- - Using python -E in the start menu - really, this time.
- - Linmath classes now initialized when using python.
- - ConfigVariableSearch
- - Implicit sort order for texture attribs.
- - OpenAL audio manager now gives control over streaming vs preloaded sounds.
- - Preliminary support for 64-bit linux (but thirdparty libs missing).
- - Fixes a dozen or so assorted bugs.
- ------------------------ RELEASE 1.5.0 ------------------------
- * Shader Generator means advanced rendering without
- having to manually write shaders. Includes:
- - Per-Pixel Lighting
- - Normal Maps
- - Gloss Maps
- - Glow (Self-Illumination) Maps
- - HDR tone mapping
- - Cartoon shading
- * Class 'CommonFilters' makes it easy to do image postprocessing:
- - Bloom Filter
- - Cartoon Inking
- - More coming soon.
- * Maya exporter now supports normal maps, gloss maps, glow maps.
- * Now compiled for Python 2.5
- * Adds support for Maya 2008 export.
- * Lots of small tweaks, bugfixes, performance improvements, etc.
- ------------------------ RELEASE 1.4.2 ------------------------
- * Added code for mouse-trail logging.
- * Fixed a minor bug in the new OpenAL code.
- * The installer now uses less memory.
- * Now easier to compile with recent versions of SSL.
- * Minor bugfix in exposeJoint
- * Added config variable: basic-shaders-only
- * graphicsEngine.removeWindow() and graphicsOutput.setOneShot() fixed.
- * Roaming ralph sample now uses collision detection correctly.
- ------------------------ RELEASE 1.4.1 ------------------------
- This release:
- * fixes a couple of small bugs
- * adds support for the new OpenAL/FFMpeg unified sound/video system.
- * renames the sample programs in a more sensible way
- ------------------------ RELEASE 1.4.0 ------------------------
- This release incorporates lots of small, incremental
- improvements.
- * Model-cache enabled by default in prepackaged release.
- * Now compiling with visual studio 2005.
- * Plugin installation now slightly harder --- see instructions in plugins dir.
- * Improved OSX support: mouselook, fmod fixes, icon filename.
- * Better memory usage tracking from pstats.
- * Removed dependencies on NSPR.
- * New default-model-extension prc variable (instead of old implicit-extension behavior)
- * New arc emitter in particle system.
- * Multiple different Actors can be flattened into one node.
- * Texture compression in DX8, DX9.
- * New features to support low-memory platforms.
- * ParametricCurveDrawer etc. officially deprecated in favor of RopeNode.
- * DynamicTextFont::RenderMode allows generating geometric fonts (instead of always using texture-based fonts).
- * Some integrated support for ODE (not yet polished and ready)
- * New RigidBodyCombiner unifies independently moving bodies into a single Geom as a rendering optimization.
- * Support for depth-stencil textures.
- * Better support for fullscreen mode on Linux.
- * Panda GL/DX windows can be subordinate to other windows (Win32 only).
- * Better multithreaded protection.
- * Interrogate correctly handles "const" vs. non-const objects.
- * PlaneNode::set_clip_effect allows user-defined cull planes (in addition to clip planes).
- * Several low-level rendering optimizations.
- * Simple occlusion culling with PipeOcclusionCullTraverser.
- * Optional bounding boxes (instead of spheres): "bounds-type box", "bounds-type best"
- * Addition of eggcacher utility to preload model-cache.
- * In source tree, added 'skel' directory to make it easier for newcomers to extend panda.
- * The obsolete config variable framebuffer-mode has been removed.
- I have no doubt that there will be a few significant bugs in this release, like all X.X.0 releases. - Josh
- ------------------------ RELEASE 1.3.2 ------------------------
- Bugfix release. This fixes a few problems in 1.3.1
- * Sound system won't initialize properly under linux: Fixed.
- * Panda DLL names now all start with "libp3" or "libpanda"
- * Normals reversed in heightfield tesselator: fixed.
- ------------------------ RELEASE 1.3.1 ------------------------
- Bugfix release. This fixes a few problems in 1.3.0
- * Sound system won't initialize properly under linux: Fixed.(Update: Not fixed)
- * Panda not compatible with SElinux: mostly fixed, except fmod.
- * Max exporter and importer broken: Fixed.
- * Minor problem involving gsg handling in showbase: Fixed.
- ------------------------ RELEASE 1.3.0 ------------------------
- This release contains several new features, and as such, it might be
- buggy. However, we've been testing it internally for a couple weeks,
- and it seems to be okay. It contains the following new features:
- * Stencil buffers and stencil operations now supported.
- * Sound API now supports DSP and better support for large MP3s.
- * Video uses FFMPEG instead of DirectShow - no more codec issues.
- * Heightfield terrain.
- * Support for intra-frame animation interpolation.
- * Use of 'import *' now only imports correct symbols.
- * Various minor improvements to the particle system.
- * Scene editor at least partially operational (alpha level)
- * Removed most of the 65,536 vertex-per-mesh limits.
- * Various low-level optimizations.
- * Support for threaded model loads (only in CVS, not in distro).
- * Support for 'model-cache-dir', which caches a BAM each time you load an EGG.
- * OnscreenText/DirectLabel can contain embedded 3D models inside the text.
- ------------------------ RELEASE 1.2.3 ------------------------
- The last release was a disaster:
- * I failed to fix packpanda.
- * I broke the tcl/tk stuff.
- * I added ppythonw, and it wasn't reliable.
- So basically, this release fixes packpanda and tcl/tk. It doesn't
- fix ppythonw yet (I don't know what's wrong), but it does disable
- it temporarily. It keeps the few things from 1.2.2 that were worth
- keeping.
- ------------------------ RELEASE 1.2.2 ------------------------
- This is a minor bugfix release.
- * Adds 'ppythonw', a version of ppython that doesn't
- open a console window.
- * If you have a bad fmod DLL in your windows folder,
- this version compensates.
- * Fixes a small bug in the VRML-to-egg converter.
- * Small stylistic improvements in some sample programs.
- ------------------------ RELEASE 1.2.1 ------------------------
- This release is likely to be much more stable than its predecessors.
- It contains many new features:
- * lots of performance optimizations
- * a preliminary OSX port
- * new modes for animation blending
- * easier partial-body animations
- * more powerful shader-to-engine interface
- * better support for rotating bodies in physics engine
- * support for compressed model files
- * multiple render targets (ie, glDrawBuffers)
- * support for stereo rendering
- * more complete API reference manual
- * ability to control mipmaps explicitly
- * better tools for debugging offscreen buffers
- * new sample programs
- * a number of packpanda repairs
- ------------------------ RELEASE 1.1.0 ------------------------
- This is a BETA release. It's pretty reliable, but there are still a
- few quirks here and there. Over the summer, Panda3D was overhauled
- top to bottom. The new code is dramatically improved, but it needs a
- little bit of testing. The new features are:
- * Much faster rendering of high-poly models.
- * Dramatically improved vertex and pixel shader support.
- * New demo programs using shaders and render-to-texture.
- * Play movies by using an AVI as a texture (windows only).
- * Python scripting uses much faster python to C++ interface.
- * Support for procedurally-created geometry (eg, fractals, etc).
- * Cleaner, simpler internal data structures.
- * Comes with Python 2.4 support built-in.
- * A lot more.
- The new demo programs are:
- * Render to Texture Demo
- * Cartoon Shader Demo
- * Motion Trails Demo
- * Procedural Geometry (Fractals) Demo
- * Normal Mapping Demo
- However, a caution: this is a BETA release: reasonably stable, but
- not quite perfect. Please send us your bug reports.
- ------------------------ RELEASE 1.0.5 ------------------------
- UPDATE: this release broke support for visual studio. Use
- panda3d 1.0.4 if you wish to compile panda from scratch using
- visual studio.
- This release consists mainly of compatibility improvements.
- * Now compiles under MS Visual Toolkit (makefile changes)
- * Now compiles under Mandrake 10.1 (a fix in the makefile)
- * Now compiles under Debian Sarge (a fix in the VRML lexer)
- * Now compiles under Ubuntu HH (same as DEBIAN SARGE)
- * Add code for building debian 'deb' archives.
- * Fix scene editor and particle panel so they work on linux.
- * Add support for --no-python to makepanda.
- * Tidied up makepanda a bit.
- ------------------------ RELEASE 1.0.4 ------------------------
- * This version includes the new Max exporter and the new Maya
- export panel.
- * We have added the --genman option to makepanda (to
- regenerate the API reference manual). This uses the epydoc
- documentation-generation system.
- * Several bugs in the new tutorials have been repaired.
- * A bug in fmod positional audio has been fixed.
- * Makepanda now puts the maya and max plugins in a
- separate 'plugins' directory, for convenience.
- * The 'libpandaegg' library has been exported to python.
- ------------------------ RELEASE 1.0.3 ------------------------
- * The binary release contains a brand new collection of
- sample programs. The new sample programs are much better.
- * If you install the windows binary release, the
- sample programs can now be run from the start menu.
- * Lighting under DirectX was broken. This has been repaired.
- * The binary release has been compiled with support for pstats.
- (Previously, it was compiled with pstats disabled).
- * Various changes to make panda3d more compatible with
- the 'epydoc' documentation-generation system.
- ------------------------ RELEASE 1.0.2 ------------------------
- This is a bugfix release.
- * makepanda contained a bug: it was compiling maya2egg6
- against the Maya 5.0 libraries, making it largely useless.
- This is fixed.
- * Maya2egg65 has been added, for Maya 6.5 users.
- * The configuration combo "want-tk=false, want-directtools=true"
- used to confuse panda, because directtools uses Tk. Now
- it's smart enough to do the right thing.
- * When you ask controlJoint to create a control node for
- you, it initializes the control node to the joint's initial
- position.
- * The scene editor supposedly works now. We'll see.
- * The models directory was missing the animation 'panda-walk4',
- which is necessary for the tutorial.
- * A new directory 'win-extras' has been added to the
- thirdparty tree. This contains some miscellaneous python
- libraries needed at the Entertainment Technology Center.
- The script that builds the windows installer will include
- these libraries in the distribution.
- ------------------------ RELEASE 1.0.1 ------------------------
- This is a bugfix release.
- * In the previous binary release, Config.prc did not contain a
- load-display line. This confuses pview. Pview is being fixed,
- but until then, the load-display line has been restored.
- * The Max and Maya plugins were inadvertently omitted from the
- previous binary release. This has been corrected.
- * An error in the distributed object networking layer has
- been fixed. The error only affected those who were trying to
- write LAN games using the CMU LAN server and p2p messages.
- * An error in the physics code has been corrected.
- * Python Megawidgets (pmw), which is required for "directtools",
- was not supplied in the previous release. We are now including
- pmw. In the Linux RPMs, to avoid overwriting any
- distribution-supplied pmw package, we put this package
- into /usr/share/panda3d.
- * To be consistent, we moved all the other python code into
- /usr/share/panda3d as well. This requires a file 'panda.pth'
- in the python lib directory.
- * In the binary RPMs, the file permissions of the python
- source files have been changed to 555, so that even if root
- runs panda, the '.pyc' files will not be modified or regenerated.
- ------------------------ RELEASE 1.0.0 ------------------------
- Configuration, installation, and execution environments:
- * This is the introduction of the new Panda version numbering
- system. The Panda version will be represented with three
- dot-separated numbers. The first number, the major version, will
- change only very rarely. The second number, the minor version,
- will increment frequently, with each new feature release. The
- third number will increment as needed to indicate bugfix releases
- on the minor version.
- * Use PandaSystem::get_version_string() (or
- PandaSystem.getVersionString() in Python) to return the version
- number of the currently-running Panda.
- * New runtime config system allows for dynamic loading of prc files
- and supports querying of available variable names. Use
- ConfigVariableString, ConfigVariableBool, etc. to get a value from
- the prc file(s); use the ConfigVariableManager and
- ConfigPageManager classes (or the cvMgr and cpMgr global objects
- in Python) to make general queries.
- * The ppremake build system now properly detects intra-tree
- dependencies, but only if each tree is fully built and installed
- before ppremake is run within the next dependent tree. Requires
- using ppremake version 1.18 or higher.
- Miscellaneous:
- * New support for encrypted streams, including encrypted subfiles
- within a multifile, using the OpenSSL encryption library. Adds
- pencrypt and pdecrypt programs.
- * The default port for PStats is now 5185, to avoid a conflict with
- Instant Messenger.
- * New "smooth" checkbox on PStats graphs provides a better sense of
- overall trends when graphs are noisy.
- * The meaning of the three components of HPR angles has been
- officially changed, in particular the meaning of the R component.
- This change was introduced to make the three components more
- consistent with each other, and to make P and R work together in a
- more sensible way. Existing code which used hard-coded HPR angles
- may be invalidated by this change. To convert existing code, you
- should use the global function old_to_new_hpr() to determine what
- new HPR triple that corresponds to an old HPR triple. As a
- temporary stopgap, you may define temp-hpr-fix 0 in your prc file.
- * Add support for weak reference counts using the WeakPointerTo
- class.
- * Add optional support for STL's semistandard hashing containers,
- e.g. hash_map and hash_set.
- * Panda no longer requires any registry keys or environment
- variables. This means it is now possible to run panda directly
- from a CD, install multiple copies of panda on a single machine,
- or install panda by copying the tree from another computer.
- Note that the installer does add the panda 'bin' directory to
- your PATH, and it does store an uninstall key in the registry,
- but neither of these is needed for panda to function.
- * The 'makepanda' build system is now capable of building
- prepackaged games for Windows. These prepackaged games are simply
- copies of panda with the game code included, some of the
- unnecessary stuff stripped out, and some changes to the start
- menu. See "Airblade - Installer" on the panda downloads page
- for an example.
- * This is the first release to include not just a binary installer
- for windows, but also binary RPMs for fedora 2, fedora 3, and
- redhat 9.
- * All of the sample programs have been tested. The ones that didn't
- work have been removed, the ones that do work have been (lightly)
- documented.
- * In the Win32 binary release, the 'config.prc' file has been moved
- to the 'etc' directory. This is to make it consistent with the
- Linux version.
- Rendering system:
- * Multitexture support is now part of Panda. This introduces the
- TextureStage and TexCoordName classes, as well as new interfaces
- like NodePath::add_texture(). As of the present release,
- multitexture is only supported when using the OpenGL renderer.
- * Support for programmable shaders is now possible using the Cg
- shader language. Assign a CgShaderAttrib to a node to apply a
- programmable shader.
- * New support for the Helix library allows playing of a streaming
- movie in a Panda texture. Presently only supported on Windows.
- * Deprecated the old "win-origin-x" and "win-origin-y" prc variables
- in favor of "win-origin", which takes two numbers separated by a
- space. Similarly with "win-width" and "win-height", in favor of
- "win-size".
- * Deprecated the old Camera::set_scene() interface; now a Camera
- implicitly renders whatever scene graph it is parented to.
- * Removed the old GraphicsLayer and GraphicsChannel classes.
- Instead of using these interfaces, you can now create any number
- of DisplayRegions directly on the window.
- * Offscreen render-to-a-texture will now be properly oriented under
- DirectX (previously, it would render the texture image upside-down
- and backward).
- * Support for automatic keystone correction caused by an off-axis
- physical projector using Lens::set_keystone().
- * New framebuffer-mode prc variable allows explicit control over the
- default framebuffer properties requested by Panda, including
- whether software or hardware rendering is required.
- * Added "multisample" transparency mode (alpha keyword "ms" in an
- egg file), which allows good-quality transparency (especially for
- alpha cutouts) without requiring back-to-front sorting, and
- without artifacts from improper sorting. This does require
- special multisample hardware capabilities, however. Presently
- supported in OpenGL mode only. Automatic fallback to "binary"
- transparency mode if multisample is not supported on a given
- platform.
- * New cursor-filename and icon-filename config variables replace the
- old win32-mono-cursor and win32-window-icon variables. Also,
- runtime control over these properties is now provided by the
- WindowProperties class.
- * Better management of potential memory leaks due to cyclic
- reference counts in the RenderState and TransformState caches.
- Now cycles are automatically detected and broken.
- Scene graph:
- * GeomNodes now have a CollideMask, just like CollisionNodes, which
- deprecates the old set_collide_geom() interface to detect
- collisions with visible geometry. There is a new NodePath
- interface for querying and setting the collide masks for single
- nodes or for entire subgraphs.
- * New NodePath interfaces to control lighting eliminate the need to
- create an explicit LightAttrib. The new lighting interfaces are
- designed to be similar to the new multitexture interfaces.
- * New NodePath interfaces to control the texture matrix, including a
- new project_texture() method to enable hardware-assisted
- projective texturing.
- * New NodePath::flatten_multitex() interface to bake in certain
- kinds of multitexture effects into a single texture, generated
- on-the-fly.
- * New options for ColorBlendAttrib and RenderModeAttrib.
- * NodePath::set_transparancy() now accepts a
- TransparencyAttrib::Mode parameter to specify exactly what kind of
- transparency you'd like.
- * New NodePath::set_render_mode() interface accepts a
- RenderModeAttrib::Mode parameter, deprecating
- set_render_mode_filled() and set_render_mode_wireframe().
- * LerpQuatInterval can be used as a drop-in replacement for
- LerpHprInterval; it performs spherical lerps in quaternion space,
- rather than lerping each component of a HPR individually.
- LerpHprInterval is not deprecated; it remains useful within its
- limitations.
- * New DirectSliderBar gui object implements a standard slider bar
- with a thumb (like a window scroll bar).
- * Lighting normals are now automatically counterscaled properly when
- lighting is enabled in the presence of a scale, uniform or
- nonuniform, in the scene graph. You can also use
- RescaleNormalAttrib for explicit control over this behavior.
- * Improvements to RopeNode for rendering splines in various
- representations.
- Collisions and physics systems:
- * New CollisionSegment and CollisionInvSphere collision solids.
- * The collision system now reports normals for intersections
- detected from collision rays, segments, and lines.
- * Several improvements to the physics system.
- Model converters:
- * x2egg and egg2x added to converters, as well as to inline
- conversion supported via ptloader. This adds support for
- DirectX's native so-called "retained-mode" file format. This file
- format supports animation and joint hierarchies as well as basic
- polygonal models.
- * vrml2egg added to converters, as well as to inline conversion
- supported via ptloader. This adds support for VRML 2.0 model
- files only.
- * Added -noabs option to many model converters, to help detect
- problems with unintended absolute path references.
- * Added egg2bam -flatten and -combine-geoms.
- * We now have working exporters for Max5, Max6, Max7, Maya5, Maya6.
- (Update: these were accidentally omitted from the binary release)
- * The Max exporter is dramatically improved: it now includes support
- for character studio, and the polygon winding bug has been fixed.
- ------------------------ RELEASE 2004-07-27 ------------------------
- Configuration, installation, and execution environments:
- * We have moved to a new, more explicit naming convention for our
- import statements. Rather than installing all Python files into
- one big flat namespace, we now import them from their appropriate
- directories, e.g. "from direct.actor import Actor".
- * "from ShowBaseGlobal import *" is replaced with "import
- direct.directbase.DirectStart" and/or "from pandac.PandaModules
- import *".
- * The old "generatePythonCode" script has been replaced with a new
- "genPyCode" script that automates the Python wrapper generation
- process without requiring any special parameters.
- * The old dependencies on environment variables have been removed.
- There are no longer requirements for any environment variables to
- be set in either the build process or the runtime environment
- (although a few optional environment variables remain to allow
- custom configuration).
- * INSTALL document greatly enhanced for clarity.
- * An automatic build script is now provided to further simplify
- building Panda3D for Unix and Cygwin users.
- * The old "Configrc" filename to identify runtime configuration
- files is deprecated; configuration files should now be named
- Config.prc, or in general, *.prc. The system-default
- configuration files are auto-generated as 20_panda.prc,
- 30_pandatool.prc, and 40_direct.prc (the numeric prefixes control
- the order in which these are loaded at runtime).
- Rendering system:
- * Some deprecated methods of CollisionEntry have been flagged to
- raise an exception now; these are replaced with the newer
- interfaces that can return a collision point in an arbitrary
- coordinate system.
- * Camera::set_cull_center() can be used for debugging culling by
- setting the effective point of visibility culling different from
- the actual point. From Python, use base.oobeCull() to examine
- this effect.
- * Alt-Enter in pview toggles between fullscreen and windowed modes.
- * Added experimental support for GL display lists.
- Scene graph:
- * Exposed methods to directly retrieve and set the individual
- vertices of a GeomNode from Python code.
- * The new PortalNode defines the interface for Panda's new
- cell-portal visibility system; each PortalNode is a window into
- another zone, or a separate subgraph; the PortalNode can hide or
- show the subset of its zone's geometry visible through its
- "portal".
- * The new PolylightNode applies a simple lighting-like effect
- without actually using lighting; objects will brighten or darken
- as a whole according to their proximity to the light. Use
- PolylightEffect to enable this effect.
- * The new FadeLODNode works like ordinary LODNode, but the switches
- are alpha-blended in over a short period of time rather than
- popping immediately.
- Text display:
- * Text now supports embedded mode changes--special characters to
- switch fonts, colors, scale, etc. within a line or within a
- paragraph.
- * Windows IME is better supported by Panda/Direct widgets
- (e.g. PGEntry and/or DirectEntry) in fullscreen mode as well as in
- windowed mode.
- Model converters:
- * dxf2egg and egg2dxf added to converters, as well as to inline
- conversion supported via ptloader.
- ------------------------ RELEASE 2004-03-29 ------------------------
- Miscellaneous:
- * We once again support the Microsoft VC6 compiler.
- * The "pstats" program is now provided in the Windows environment as
- part of pandatool. It is similar to "gtk-stats" on a Unix
- environment, and can be used to view a real-time graph of
- performance timing in a running Panda process. See
- panda/src/doc/howto.use_pstats.
- * New session recording and playback support allows capturing user
- and network input to a disk file, for replaying later, offline.
- Use "record-session filename.boo" and "playback-session
- filename.boo" in your Configrc file.
- * The genPyCode script now uses PythonWare's SqueezeTool to
- "squeeze" the large number of generated .py files into a single
- shared library, for substantially improved startup times on
- Windows.
- * The Task system now has substantially reduced overhead when many
- doLater's are waiting in the system.
- * The png image file type is now supported.
- Rendering system:
- * Introducing native DirectX9 graphics support, although we do not
- yet support any features specific to DirectX9, such as
- programmable shaders.
- * DirectX7 and DirectX8 modules are now somewhat more robust.
- * New support for offscreen rendering and render-to-a-texture, which
- will become part of a general multipass-rendering interface.
- Presently supported in OpenGL, with limited DirectX support. Use
- GraphicsWindow::make_texture_buffer() to make a buffer you can
- render into and apply the result as a texture map to objects in
- your scene. The NonlinearImager in the distort directory is a
- complex example of using this interface.
- * Explicit support for the Mesa 3D library's software-based
- offscreen rendering, allowing a Panda program to generate
- offscreen images as a background process, independently of any
- graphics card or desktop environment.
- * GraphicsLayer and GraphicsWindow render order can now be easily
- adjusted dynamically with set_sort() methods.
- * Built-in frame rate meter can be activated by setting
- "show-frame-rate-meter 1" in your Configrc file.
- Scene graph:
- * New tag system on PandaNodes allows storing of arbitrary string
- data on nodes, keyed by a string dictionary. The
- NodePath::get_net_tag() interface retrieves the data value for a
- particular tag on a node or the nearest ancestor of the node.
- NodePath::find() can search for a node in the scene graph with a
- given tag or tag/value pair.
- * Explicit shear transforms are now supported on nodes, as well as
- in character animation tables.
- * Characters now have an interface to control joint and slider
- values dynamically, instead of strictly from an animation file.
- Use Actor.exposeJoint() and/or Actor.controlJoint().
- * Nurbs surfaces and curves can now be rendered directly by Panda,
- which will tesselate them on the fly at some CPU cost. This is a
- modeling convenience only; it is not intended to be used for
- production code. Triangle strips are still the fastest way to
- render complex surfaces.
- * However, Rope.py is now provided as a high-level wrapper around
- Panda's runtime NURBS curve evaluator; it can render dynamic
- curves in a variety of ways.
- * The egg library is now published to Python, allowing construction
- of geometry on-the-fly by show code for convenience. This is also
- intended as a developer's convenience more than a production
- feature.
- Text display:
- * The special character \3 (ASCII 0x03) embedded in a text string
- indicates the position of a soft hyphen when wordwrap mode is in
- effect. The character \4 (ASCII 0x04) serves as a hyphenless
- invisible break point.
- * A default font is compiled in even if the FreeType library is not
- available.
- * pnmtext library added for rendering text directly into an image.
- * New egg-mkfont utility uses FreeType to generate static font
- models that Panda clients without FreeType can use to render text.
- Collision and physics system:
- * More robust collision interface, supporting NodePaths properly so
- that collisions detected into (and from) particular instances of
- nodes can be differentiated. CollisionEntry has a much simpler
- mechanism for getting the intersection point and normal in an
- arbitrary coordinate space defined by a NodePath, instead of the
- user having to convert the coordinate space by hand.
- * New CollisionVisualizer object to visually show collisions as they
- are tested and detected, useful for optimizing collision
- performance. Activate this with
- base.cTrav.showCollisions(render).
- * Implicit velocity system is now integrated with scene graph; the
- relative velocity of moving nodes is automatically considered when
- testing for most kinds of collisions. Use
- NodePath::set_fluid_pos() to indicate that a node is moving
- fluidly to its new position and should test for collisions along
- the way (as opposed to the more traditional NodePath::set_pos(),
- which unconditionally sets the node to its new position).
- * Introduction of "tube" collision shapes, sometimes called
- "capsules" in other libraries. It is a cylinder capped with
- hemispheres.
- * CollisionSolid::set_effective_normal() provides a way to define a
- sloping surface with an apparently vertical normal, to prevent
- characters standing on the surface from sliding down.
- * Collision polygons now respect clipping planes.
- * Many changes to physics system.
- HTTPClient and net systems:
- * More verbose error reporting.
- * Better support for proxy servers, including SOCKS5 proxies.
- Model converters:
- * maya2egg converter now supports skeleton/morph animation files
- fully, including soft-skinning, hard-skinning, and morphs (blend
- shapes). NURBS and polygon meshes are both supported.
- * A new Maya plugin called libmayapview allows opening a Panda
- window from within Maya to view how the scene will look once it
- has been converted to Panda.
- * New soft2egg converter supports models and animation stored in
- SoftImage 4.3 files. (Newer versions of SoftImage are not
- supported.)
- * New egg2flt program more or less reverses flt2egg.
- * The ptloader Panda loader allows direct loading into Panda of most
- model file types defined within pandatool: Maya, flt, and lwo.
- Specify load-file-type ptloader in your Configrc file.
- * New egg-optchar preprocessor improves character animation runtime
- performance by eliminating unneeded joints. It can also
- reorganize a skeleton and/or expose joints for the show code's
- convenience.
- * New egg-qtess utility converts NURBS egg files to polygon egg
- files with either a trivial interface for quick conversions or a
- sophisticated parameter file for more precise control. It
- preserves soft-skinning and animation information.
- * New visibility flag in egg format allows model files to define
- invisible subtrees which will be initially stashed when loaded.
- * The egg library now allows implicit forward references to vertex
- pools, making it much easier to generate a valid egg file from a
- third-party model format.
|