Не подтверждена Коммит 6b3a3898 создал по автору Dealga McArdle's avatar Dealga McArdle Зафиксировано автором GitHub
Просмотр файлов

B28 autodpi 3 (#2618)

* prelim auto config code

* pass Exception

* add  get_set scale info to all nodeview drawing nodes

* print in set_nodeview_render_params

* include single call to get_and_set_gl_scale_info from sv_post_load

* no manual setting of these things
владелец d3b50a8d
......@@ -137,6 +137,11 @@ def sv_post_load(scene):
Upgrade nodes, apply preferences and do an update.
"""
# ensure current nodeview view scale / location parameters reflect users' system settings
from sverchok import node_tree
node_tree.SverchCustomTreeNode.get_and_set_gl_scale_info(None, "sv_post_load")
for monad in (ng for ng in bpy.data.node_groups if ng.bl_idname == 'SverchGroupTreeType'):
if monad.input_node and monad.output_node:
monad.update_cls()
......
......@@ -11,7 +11,7 @@
<body>
<div id="vh" class="box">
Sorry! It appears that <span id="label">Get property</span> doesn't have a document associated with it.
Sorry! It appears that <span id="label">Planar edgenet to polygons</span> doesn't have a document associated with it.
<br/><br/>
Please contact us on the <a href="https://github.com/nortikin/sverchok/issues">GitHub issue tracker</a> or any of the following social sites:
<a href="https://plus.google.com/communities/113245231013159497850">G+</a>, <a href="http://vk.com/public35076122">VK</a> or <a href="http://www.blenderartists.org/forum/showthread.php?272679">Blenderartists</a>.
......
......@@ -473,7 +473,24 @@ class SverchCustomTreeNode:
"""
op = layout_element.operator(operator_idname, **keywords)
op.idname = self.name
op.idtree = self.id_data.name
op.idtree = self.id_data.name
def get_and_set_gl_scale_info(self, origin=None):
"""
This function is called in sv_init in nodes that draw GL instructions to the nodeview,
the nodeview scale and dpi differs between users and must be queried to get correct nodeview
x,y and dpi scale info.
"""
print('get_and_set_gl_scale_info called from', origin or self.name)
try:
print('getting gl scale params')
from sverchok.utils.context_managers import sv_preferences
with sv_preferences() as prefs:
getattr(prefs, 'set_nodeview_render_params')(None)
except Exception as err:
print('failed to get gl scale info', err)
classes = [
......
......@@ -121,6 +121,7 @@ class SvEasingNode(bpy.types.Node, SverchCustomTreeNode):
def sv_init(self, context):
self.inputs.new('SvStringsSocket', "Float").prop_name = 'in_float'
self.outputs.new('SvStringsSocket', "Float").custom_draw = 'custom_draw_socket'
self.get_and_set_gl_scale_info()
def get_drawing_attributes(self):
"""
......
......@@ -79,8 +79,8 @@ class SvStethoscopeNodeMK2(bpy.types.Node, SverchCustomTreeNode):
compact: BoolProperty(default=False, update=updateNode)
depth: IntProperty(default=5, min=0, update=updateNode)
def sv_init(self, context):
self.inputs.new('SvStringsSocket', 'Data')
def get_theme_colors_for_contrast(self):
try:
current_theme = bpy.context.preferences.themes.items()[0][0]
editor = bpy.context.preferences.themes[current_theme].node_editor
......@@ -88,6 +88,12 @@ class SvStethoscopeNodeMK2(bpy.types.Node, SverchCustomTreeNode):
except:
print('-', end='')
def sv_init(self, context):
self.inputs.new('SvStringsSocket', 'Data')
self.get_theme_colors_for_contrast()
self.get_and_set_gl_scale_info()
# reset n_id on copy
def copy(self, node):
self.n_id = ''
......
......@@ -348,7 +348,9 @@ class SvTextureViewerNode(bpy.types.Node, SverchCustomTreeNode):
height_socket = inew('SvStringsSocket', "Height")
height_socket.prop_name = 'height_custom_tex'
height_socket.hide_safe = True
pass
self.get_and_set_gl_scale_info()
def delete_texture(self):
n_id = node_id(self)
......
......@@ -79,6 +79,7 @@ class SvTextureViewerNodeLite(bpy.types.Node, SverchCustomTreeNode):
def sv_init(self, context):
self.width = 180
self.inputs.new('SvStringsSocket', "pixel value")
self.get_and_set_gl_scale_info()
def delete_texture(self):
n_id = node_id(self)
......
......@@ -36,6 +36,16 @@ def get_params(settings_and_fallbacks):
setattr(props, k, value)
return props
# getDpiFactor and getDpi are lifted from Animation Nodes :)
def get_dpi_factor():
return get_dpi() / 72
def get_dpi():
systemPreferences = bpy.context.preferences.system
retinaFactor = getattr(systemPreferences, "pixel_size", 1)
return systemPreferences.dpi * retinaFactor
class SverchokPreferences(AddonPreferences):
......@@ -229,6 +239,13 @@ class SverchokPreferences(AddonPreferences):
index_viewer_scale: FloatProperty(
default=1.0, min=0.01, step=0.01, description='default index viewer scale')
def set_nodeview_render_params(self, context):
# i think these are both the same..
self.render_scale = get_dpi_factor()
self.render_location_xy_multiplier = get_dpi_factor()
print(f'set render_scale to: {self.render_scale}')
print(f'set render_location_xy_multiplier to: {self.render_location_xy_multiplier}')
##
datafiles = os.path.join(bpy.utils.user_resource('DATAFILES', path='sverchok', create=True))
......@@ -352,8 +369,10 @@ class SverchokPreferences(AddonPreferences):
box_sub1_col = box_sub1.column(align=True)
box_sub1_col.label(text='Render Scale & Location')
box_sub1_col.prop(self, 'render_location_xy_multiplier', text='xy multiplier')
box_sub1_col.prop(self, 'render_scale', text='scale')
# box_sub1_col.prop(self, 'render_location_xy_multiplier', text='xy multiplier')
# box_sub1_col.prop(self, 'render_scale', text='scale')
box_sub1_col.label(text=f'xy multiplier: {self.render_location_xy_multiplier}')
box_sub1_col.label(text=f'render_scale : {self.render_scale}')
box_sub1_col.label(text='Stethoscope')
box_sub1_col.prop(self, 'stethoscope_view_scale', text='scale')
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать