Blender Git Commits

Blender Git "asset-experiments" branch commits.

Page: 44 / 54

March 3, 2015, 16:10 (GMT)
Merge branch 'master' into asset-experiments
March 1, 2015, 10:42 (GMT)
Add name/description fields to entries themselves too.

This allows us to greatly simplifies sorting (and avoid recomputing UI name each and everytime!).
Also, correctly free entries/variants names/descriptions.
March 1, 2015, 10:21 (GMT)
Spread (future assets) uuid over entries/variants/revisions.

Makes more sense this way, and will probably save memory in the end even.
March 1, 2015, 09:54 (GMT)
Merge branch 'master' into asset-experiments
February 28, 2015, 14:21 (GMT)
Merge branch 'master' into asset-experiments
February 27, 2015, 18:18 (GMT)
Filelisting: switch from mere arrays to listbases.

Was not sure about that (adds two pointers to entries, variants **and** revisions :/ ),
but with the incremental process of listing we are using now, it makes things sooooo
much easy to handle (and also avoids tons of (deep)copy and mem (re)alloc), that it's
definitively worth it.

And since most (if not all) of 'public' access to filelist is done through filtered ones,
we can easily keep this a mere array of pointers, and hence keep quick index lookup.

Also, quite noticiably simplified the whole listing code (less functions, less levels of subcalls...).

Note: for now we stick to mere alloc, we may benefit from either memarena or mempool,
but those are not threadsafe (which means we could not so easily pass mem from worker
thread to main one), so not quite sure it would be worth it.

Note: thumbnail stuff is to be reworked from scratch too, have the feeling it's not yet
100% thread safe, and using a job here is probably way overkill, since we do not show
any progress in UI.
February 27, 2015, 13:23 (GMT)
Merge branch 'master' into asset-experiments
February 26, 2015, 14:38 (GMT)
Merge branch 'master' into asset-experiments
February 24, 2015, 19:15 (GMT)
Merge branch 'master' into asset-experiments
February 24, 2015, 15:20 (GMT)
Move back path, image etc. to FileDirEntry.

Also, reduce revision's uuid to 64bytes, should be more than enough!

Thing is, we can expect tens (if not hundreds) of thousands of revisions from a
big assets repository with history storage (vcs). So we want that struct
to be as small as possible.

Also, we do not expect to handle several variants/revisions of a same asset within
a same 'context' (there is always only one active variant & rev). So storing
path & co at entry level shall be enough. And helps make code simpler/nicer.
February 24, 2015, 13:46 (GMT)
Get rid of abspath storage, this is storing twice the same data, not nice memory-wise.

We may suffer a little performance loss here, but would not expect it to be really important,
since rebuilding a full abspath is not needed that often.
February 24, 2015, 13:14 (GMT)
Restore size/date sorting.

Also, get rid of modes/owner crap, this is quite advanced UNIX fs info, not much to
do in our filebrowser imho, and takes time, UI space and Mem space!
February 24, 2015, 11:48 (GMT)
Merge branch 'master' into asset-experiments
February 23, 2015, 15:13 (GMT)
Merge branch 'master' into asset-experiments
February 23, 2015, 14:08 (GMT)
Merge branch 'master' into asset-experiments
February 23, 2015, 13:47 (GMT)
Filelisting: First step of sanitanization...

Move typeflag and selflag back to FileDirEntry, and add blentype there too,
this will be needed by asset engines, and avoids rechecking lib ID types over and over!

There's much more to do here though. Also, FileDirEntryRevision is going to be
used quite higly, we want to keep it as light as possible (much lighter than
its current state for sure!). Think we can move back to FileDirEntry paths
(and try to get rid of abspath on the run, too), but also most likely
preview (we won't store a preview for all possible revisions anyway),
owner/permissions, etc.

Rev should probably only have its uuid, and date/time.

Also, simplified filetype generation (from extensions for real files, and BLO helpers
for libdata), now it's nicely encapsulated into each reading callback.
February 23, 2015, 11:27 (GMT)
Merge branch 'master' into asset-experiments
February 22, 2015, 14:21 (GMT)
Merge branch 'master' into asset-experiments
February 19, 2015, 14:30 (GMT)
Merge branch 'master' into asset-experiments
February 18, 2015, 20:36 (GMT)
Big refactor of filelisting in filebrowser - decouple os/fs-related direntry from actual blender listing.

Main idea is that direntry had quite a bit of things already absolutely useless
in the mere 'file listing' context (image pointer, void 'data' pointer, etc.).

On the other end, to handle future asset stuff, we need *more* 'meta data' for our 'files'
(tags, variants, revisions...).

Further more, we need all this to be easily usable through RNA, i.e. we need it to
be defined in DNA.

So instead of trying to use direntry in DNA, mixing low-level system stuff like stat
where we do not want to see it, we define our own 'file' representation,
with only what we really need (who cares about chars or block or dev files in filebrowser?
we only need to know whether it's a regular file or a directory, period).

That way, low-level dirlisting remains clean, and we can easily extend our own
data as needed.

Note this new code works, does not crash (so far...) nor memleak, but it
needs quite a bit of work still, we are still storing useless stuff in direntry
(all those strings representing modes, size etc.!), and mem handling
during dir/lib listing is confusing at best (would like to use a memarena
or mempool here, but it's not that easy).
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021