Revision 0509409 by Ton Roosendaal November 12, 2008, 19:14 (GMT) |
Bah, two more files! |
Revision 8030cb0 by Ton Roosendaal November 12, 2008, 19:03 (GMT) |
Patch #7897 Texture Nodes! Robin (Frrr) Allen did a decent job on this, so we can also welcome him as a member in the svn committers team to maintain it! I do the first commit with some minor fixes: - get Makefiles work - fix rounding issue with tiles on unit faces - removed UI includes from tex node A nice doc in wiki is here: http://wiki.blender.org/index.php/User:Frr/TexnodeManual On the todo for Robin is: - When using one or more Texture-input nodes, you cannot edit them by activating (as works now for Material nodes). - The new "output node" option fails on the default case, when only one output node is active. It then shows often a blank menu. Will get fixed asap. - When using a NodeTree-Texture as input node, the menu for 'active output' should not show. NodeTree should ignore other nodetrees to keep things sane for now. - On a future todo is proper usage of "Dxt" and "Dyt" texture vectors for superior antialising of checkers/bricks. General note; I know people are dying to get a full integrated shader system with nodes. In theory we could merge this with Material Nodetrees... but I rather wait for a solid and very well thought out design proposal for this, also including design ideas for unifying with a shader language (GPU, CPU). For the time being this is a nice extension of current textures. :) |
Revision 3fd3a13 by Nathan Letwory November 12, 2008, 16:04 (GMT) |
set default path to the version that creates a working binary of Blender, when building with mingw. Now there is no need to do extra copying/config changing |
Revision 999f312 by Nathan Letwory November 12, 2008, 07:48 (GMT) |
Change the LCG_DIR usage to BF_name_LIBPATH where possible. FFMPEG can't be done like that yet, needs some extra thought to handle differences between vc and mingw setup |
Revision c63c99d by Campbell Barton November 12, 2008, 05:56 (GMT) |
Option to have painting multi-threaded. Each thread process the next free bucket the brush is over until they are all done. |
November 11, 2008, 23:24 (GMT) |
* Added a button to the volume material controls 'Alpha' to generate an alpha channel based on the volume's transmission properties, allowing you to use it in comp etc. I'd rather not have this button at all, and make it just work properly by default, however it causes problems with overlapping volumes when 'premul' is on (stoopid thing..) so for the time being, there's the button. I'll try and fix this up later on when I have more time. |
Revision b8fb31e by Nathan Letwory November 11, 2008, 22:48 (GMT) |
Remove BGE defines from highest level and define only there where needed. This prevents scons from doing complete rebuilds when toggling BGE related options. |
Revision 7e4db23 by Nathan Letwory November 11, 2008, 21:37 (GMT) |
previous commits showed that the absolute path problem was even deeper. This should fix yet again some of the problems with giving them to BF_BUILDDIR |
Revision 418ee26 by Nathan Letwory November 11, 2008, 20:47 (GMT) |
spaces -> tabs |
Revision 7850320 by Nathan Letwory November 11, 2008, 20:46 (GMT) |
fix for another place where absolute paths for BF_BUILDDIR where a problem (generating results in the wrong place) |
Revision 7f3b158 by Nathan Letwory November 11, 2008, 20:26 (GMT) |
fix problem with giving absolute paths to BF_BUILDDIR |
Revision 2961cdc by Nathan Letwory November 11, 2008, 20:01 (GMT) |
Fix typo that prevented CC_WARN from being added to build commands |
Revision 78a1c27 by Brecht Van Lommel November 11, 2008, 18:31 (GMT) |
Port of part of the Interface code to 2.50. This is based on the current trunk version, so these files should not need merges. There's two things (clipboard and intptr_t) that are missing in 2.50 and commented out with XXX 2.48, these can be enabled again once trunk is merged into this branch. Further this is not all interface code, there are many parts commented out: * interface.c: nearly all button types, missing: links, chartab, keyevent. * interface_draw.c: almost all code, with some small exceptions. * interface_ops.c: this replaces ui_do_but and uiDoBlocks with two operators, making it non-blocking. * interface_regions: this is a part of interface.c, split off, contains code to create regions for tooltips, menus, pupmenu (that one is crashing currently), color chooser, basically regions with buttons which is fairly independent of core interface code. * interface_panel.c and interface_icons.c: not ported over, so no panels and icons yet. Panels should probably become (free floating) regions? * text.c: (formerly language.c) for drawing text and translation. this works but is using bad globals still and could be cleaned up. Header Files: * ED_datafiles.h now has declarations for datatoc_ files, so those extern declarations can be #included instead of repeated. * The user interface code is in UI_interface.h and other UI_* files. Core: * The API for creating blocks, buttons, etc is nearly the same still. Blocks are now created per region instead of per area. * The code was made non-blocking, which means that any changes and redraws should be possible while editing a button. That means though that we need some sort of persistence even though the blender model is to recreate buttons for each redraw. So when a new block is created, some matching happens to find out which buttons correspond to buttons in the previously created block, and for activated buttons some data is then copied over to the new button. * Added UI_init/UI_init_userdef/UI_exit functions that should initialize code in this module, instead of multiple function calls in the windowmanager. * Removed most static/globals from interface.c. * Removed UIafterfunc_ I don't think it's needed anymore, and not sure how it would integrate here? * Currently only full window redraws are used, this should become per region and maybe per button later. Operators: * Events are currently handled through two operators: button activate and menu handle. Operators may not be the best way to implement this, since there are currently some issues with events being missed, but they can become a special handler type instead, this should not be a big change. * The button activate operator runs as long as a button is active, and will handle all interaction with that button until the button is not activated anymore. This means clicking, text editing, number dragging, opening menu blocks, etc. * Since this operator has to be non-blocking, the ui_do_but code needed to made non-blocking. That means variables that were previously on the stack, now need to be stored away in a struct such that they can be accessed again when the operator receives more events. * Additionally the place in the ui_do_but code indicated the state, now that needs to be set explicit in order to handle the right events in the right state. So an activated button can be in one of these states: init, highlight, wait_flash, wait_release, wait_key_event, num_editing, text_editing, text_selecting, block_open, exit. * For each button type an ui_apply_but_* function has also been separated out from ui_do_but. This makes it possible to continuously apply the button as text is being typed for example, and there is an option in the code to enable this. Since the code non-blocking and can deal with the button being deleted even, it should be safe to do this. * When editing text, dragging numbers, etc, the actual data (but->poin) is not being edited, since that would mean data is being edited without correct updates happening, while some other part of blender may be accessing that data in the meantime. So data values, strings, vectors are written to a temporary location and only flush in the apply function. Regions: * Menus, color chooser, tooltips etc all create screen level regions. Such menu blocks give a handle to the button that creates it, which will contain the results of the menu block once a MESSAGE event is received from that menu block. * For this type of menu block the coordinates used to be in window space. They are still created that way and ui_positionblock still works with window coordinates, but after that the block and buttons are brought back to region coordinates since these are now contained in a region. * The flush/overdraw frontbuffer drawing code was removed, the windowmanager should have enough information with these screen level regions to have full control over what gets drawn when and to then do correct compositing. Testing: * The header in the time space currently has some buttons to test the UI code. |
Revision 44f94f7 by Brecht Van Lommel November 11, 2008, 18:28 (GMT) |
* Compile fix for RNA + makefiles. * Fix for bug in collection string lookup function. |
Revision 6b86f83 by Benoit Bolsee November 11, 2008, 16:48 (GMT) |
MSVC90 project files: Tune projects build order to allow error-free build from clean state. |
Revision 4a4b073 by Brecht Van Lommel November 11, 2008, 15:18 (GMT) |
Various changes made in the process of working on the UI code: * Added functions to generate Timer events. There was some unfinished code to create one timer per window, this replaces that with a way to let operators or other handlers add/remove their own timers as needed. This is currently delivered as an event with the timer handle, perhaps this should be a notifier instead? Also includes some fixes in ghost for timer events that were not delivered in time, due to passing negative timeout. * Added a Message event, which is a generic event that can be added by any operator. This is used in the UI code to communicate the results of opened blocks. Again, this may be better as a notifier. * These two events should not be blocked as they are intended for a specific operator or handler, so there were exceptions added for this, which is one of the reasons they might work better as notifiers, but currently these things can't listen to notifier yet. * Added an option to events to indicate if the customdata should be freed or not. * Added a free() callback for area regions, and added a free function for area regions in blenkernel since it was already there for screens and areas. * Added ED_screen/area/region_exit functions to clean up things like operators and handlers when they are closed. * Added screen level regions, these will draw over areas boundaries, with the last created region on top. These are useful for tooltips, menus, etc, and are not saved to file. It's using the same ARegion struct as areas to avoid code duplication, but perhaps that should be renamed then. Note that redraws currently go correct, because only full window redraws are used, for partial redraws without any frontbuffer drawing, the window manager needs to get support for compositing subwindows. * Minor changes in the subwindow code to retrieve the matrix, and moved setlinestyle to glutil.c. * Reversed argument order in WM_event_add/remove_keymap_handler to be consistent with modal_handler. * Operators can now block events but not necessarily cancel/finish. * Modal operators are now stored in a list in the window/area/region they were created in. This means for example that when a transform operator is invoked from a region but registers a handler at the window level (since mouse motion across areas should work), it will still get removed when the region is closed while the operator is running. |
Revision 3bb5fc9 by Brecht Van Lommel November 11, 2008, 15:03 (GMT) |
* RNA: utility function to retrieve strings. It will use a fixed size buffer if it's big enough, and otherwise allocate memory. * Added BLI_dynstr_appendf() to construct strings easily in printf style, this should make it easier to construct menu strings for example. |
Revision 483136c by Campbell Barton November 11, 2008, 14:14 (GMT) |
Adjusted scons files so disabling quicktime, python and sdl also removes their includes when building. writefile.c had usless include. |
Revision 58b8611 by Campbell Barton November 11, 2008, 12:56 (GMT) |
Revision aac928d by Campbell Barton November 11, 2008, 12:35 (GMT) |
last commit before some optimizations. setting RT to 123 will paint from grease pencil (for benchmarking). |
|
|
|


Master Commits
MiikaHweb | 2003-2021