[Bf-committers] Generating icons overwriting files in SVN.

Bastien Montagne montagne29 at wanadoo.fr
Tue Aug 27 14:12:37 CEST 2013


Thanks Campbell, think this will do it for now! :)

On 27/08/2013 12:06, Campbell Barton wrote:
> Added convenience target so you can run "make icons" from blenders source dir.
>
> On Tue, Aug 27, 2013 at 7:32 PM, Constantin Rahn<crahn at vrchannel.de>  wrote:
>> Ah sure, you are right, there is no blender at buildtime that could
>> convert the PNGs.
>>
>> Am 27.08.2013 11:27, schrieb Sergey Sharybin:
>>> Supporting SVG as a textures is a complete different topic.
>>>
>>> Here we're discussing building process itself,meaning to the time SVG->PNG
>>> conversion is needed there's no blender built yet. Adding extra dependency
>>> for this step i would consider a bad idea.
>>>
>>> And i still not sure we need to be smart here. IMO, when someone updates
>>> SVG he SHOULD update PNG as well. Also, it might worth defining owner of
>>> icons,who will update the files (as opposite to current "everyone might
>>> just edit the icons and update them").
>>>
>>> IMO, that'd be nice practice anyway and no need to try writing any AI in
>>> cmake :)
>>>
>>>
>>> On Tue, Aug 27, 2013 at 3:02 PM, Constantin Rahn<crahn at vrchannel.de>  wrote:
>>>
>>>> Some naive question:
>>>> Why do you use incscape or imagemagic and not blender itself?
>>>>
>>>> In 2008 there was a nice plugin called "Vectex", with the functionality
>>>> of using native SVG as textures in "Blender Render". With this plugin
>>>> updated to latest blender version, it should be possible to rasterize
>>>> the SVGs for buttons in blender itself.
>>>> In worst case use a little scene with a plane and an ortho camera and
>>>> render the buttons.
>>>>
>>>> http://code.google.com/p/vectex/
>>>>
>>>> http://www.blendernation.com/2008/03/02/vectex-svg-vector-texture-plugin-for-blender/
>>>>
>>>> http://blenderartists.org/forum/showthread.php?117889-Vectex-SVG-vector-texture-plugin-for-Blender
>>>>
>>>> Beside that would it be a nice feature to bring SVG support for textures
>>>> back to blender.
>>>>
>>>> Or do I miss something here?
>>>>
>>>> Happy blending,
>>>> Conz
>>>>
>>>> Am 26.08.2013 18:37, schrieb Brecht Van Lommel:
>>>>> I solved the OS X problem, just didn't commit the fix yet, is now
>>>>> committed in case this gets reenabled.
>>>>>
>>>>>
>>>>> Also, svn/git does not show the file as changed if the binary file is
>>>>> identical. But different inkscape versions or some date/time metadata
>>>>> may generate different files. Probably it's difficult to ensure you
>>>>> get identical files.
>>>>>
>>>>> If you wanted to solve this, you could do something like embed an md5
>>>>> hash of the svg in the png file. Then if the hash is different
>>>>> overwrite the png, else just "touch" the file so the modified date is
>>>>> newer.
>>>>>
>>>>> Brecht.
>>>>>
>>>>> On Mon, Aug 26, 2013 at 2:15 PM, Campbell Barton<ideasman42 at gmail.com>
>>>> wrote:
>>>>>> Thanks Bastian,
>>>>>> Until recently we had to manually update all datatoc stuff (glsl,
>>>>>> fonts fonts etc,....) and it _did_ get annoying so appretiate
>>>>>> improvements here even if there are some hiccups along the way.
>>>>>>
>>>>>> Rasterizer in Blender may not be such a big project if we can use some
>>>>>> small SVG library that isnt pulling in many deps (or use some other
>>>>>> more compact vector format that SVG can be converted into might be
>>>>>> better).
>>>>>>
>>>>>> Just to note on 2 issues.
>>>>>>
>>>>>> I uninstalled inkscape to avoid blender useing it and now I get this
>>>>>> message when building...
>>>>>>
>>>>>> """
>>>>>> No rule to make target `/usr/bin/inkscape', needed by
>>>>>> `/src/blender/release/datafiles/blender_icons16.png'.  Stop.
>>>>>> """
>>>>>>
>>>>>> Brecht also mentioned he had some error on OSX that X11 had not been
>>>>>> started (inkscape must use X11 even when run in the command line).
>>>>>>
>>>>>> ImageMagick's SVG conversions from SVG look exact the same as
>>>>>> inkscapes from my test so if this is added back at some point we could
>>>>>> use that instead.
>>>>>>
>>>>>> On Mon, Aug 26, 2013 at 10:06 PM, Bastien Montagne
>>>>>> <montagne29 at wanadoo.fr>  wrote:
>>>>>>> Hi folks,
>>>>>>>
>>>>>>> I made that change because I found out prvicons.png was no more in sync
>>>>>>> with its svg "master" since a long time. I obviously agree that these
>>>>>>> "false" changes to png are not nice (I did not expected them, thought
>>>>>>> svn would stick to binary comparison to detect changes in binary files
>>>>>>> :/ ). Additionally, it’s a bit a pita when sharing patches that add an
>>>>>>> icon, reviewer also has to update png from svg...
>>>>>>>
>>>>>>> I’ll revert (or rather, comment) that change for now, but imho we
>>>> really
>>>>>>> need to find some way to avoid that kind of disparity, human are far
>>>> too
>>>>>>> much unreliable when it comes to such tasks!
>>>>>>>
>>>>>>> I like Sergey's solution (rasterize svg in Blender), but this is quite
>>>> a
>>>>>>> big project I fear. :/
>>>>>>>
>>>>>>> On 26/08/2013 12:35, Sergey Sharybin wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> Don't think generating PNG if Inkscape found and using PNG from SVN
>>>>>>>> otherwise will work. We would still need to keep PNG up-to-date in
>>>> svn, so
>>>>>>>> everyone is guaranteed to have up-to-date icons.
>>>>>>>>
>>>>>>>> Making inkscape/imagemagick a dependency is not  a good thing to do
>>>> as well
>>>>>>>> -- blender compilation is already really complicated. So i would
>>>> rather
>>>>>>>> avoid this.
>>>>>>>>
>>>>>>>> So from suggested alternatives i would prefer reverting that part of
>>>>>>>> changes which generates PNG out of SVG at buildtime. We don't change
>>>> icons
>>>>>>>> so much often anyway.
>>>>>>>>
>>>>>>>> As a long-term solution, think it's better to make SVG a native
>>>> format for
>>>>>>>> icons. Meaning, blender will rasterize SVG itself. Would make any
>>>> icons
>>>>>>>> size look just as crisp as it could be :)
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Aug 26, 2013 at 4:09 PM, Campbell Barton<ideasman42 at gmail.com
>>>>> wrote:
>>>>>>>>> Recently Bastian committed changes so changes to the SVG icons
>>>>>>>>> automatically generates new PNG's.
>>>>>>>>>
>>>>>>>>> In general this is nice functionality to have, but it has some
>>>> problems.
>>>>>>>>> The updated file thats generated overwrites the PNG in svn,
>>>>>>>>> with changes to file modifiy times (moving files or dirs about),
>>>>>>>>> its possible the PNG will get regenerated by building, even if the
>>>> SVG
>>>>>>>>> wasnt modified.
>>>>>>>>>
>>>>>>>>> So before committing you have to revert the change if it wasnt
>>>> intentional,
>>>>>>>>> then manually touch the PNG so CMake isn't going to try generate the
>>>>>>>>> image again.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Normally I check files before committing but sometimes I just commit
>>>>>>>>> if I know I only edited a few files.
>>>>>>>>> but generating overwriting files in svn means you can't be sure other
>>>>>>>>> files aren't chagned too.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Suggest 2 options...
>>>>>>>>>
>>>>>>>>> 1) Store _all_ generated files out of source,
>>>>>>>>>       (this was the case already before icon changes)
>>>>>>>>> Note: since we currently don't have inkscape as a build dependency we
>>>>>>>>> cant remove the PNG's from SVN,
>>>>>>>>>       but we could generate the file to the external dir, if inkscape
>>>>>>>>> isn't found, just copy it from the one in svn.
>>>>>>>>>       This way we get the benefit of icon generation without
>>>> accidentally
>>>>>>>>> overwriting icons in svn.
>>>>>>>>>
>>>>>>>>> 2) revert icon generation as part of the build process for now.
>>>>>>>>>
>>>>>>>>> A third option could be to remove PNG's from SVN and make
>>>>>>>>> inkscape/imagemagick a build dependency,
>>>>>>>>> but think this makes building more trouble and dont really think its
>>>>>>>>> such a good thing to do.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> - Campbell
>>>>>>>>> _______________________________________________
>>>>>>>>> Bf-committers mailing list
>>>>>>>>> Bf-committers at blender.org
>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Bf-committers mailing list
>>>>>>> Bf-committers at blender.org
>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>>>> --
>>>>>> - Campbell
>>>>>> _______________________________________________
>>>>>> Bf-committers mailing list
>>>>>> Bf-committers at blender.org
>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>>> _______________________________________________
>>>>> Bf-committers mailing list
>>>>> Bf-committers at blender.org
>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>>>
>>>> _______________________________________________
>>>> Bf-committers mailing list
>>>> Bf-committers at blender.org
>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>>
>>>
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
>
>


More information about the Bf-committers mailing list