Refactoring: Geometry Node: Avoid copy last buffer in result for Blur Attribute node #106860
|
@ -3,6 +3,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import bpy
|
||||
from bpy.app.translations import contexts as i18n_contexts
|
||||
from bpy_extras.node_utils import find_node_input
|
||||
from bl_ui.utils import PresetPanel
|
||||
|
||||
|
@ -318,7 +319,7 @@ class CYCLES_RENDER_PT_sampling_path_guiding(CyclesButtonsPanel, Panel):
|
|||
|
||||
col = layout.column(align=True)
|
||||
col.prop(cscene, "use_surface_guiding", text="Surface")
|
||||
col.prop(cscene, "use_volume_guiding", text="Volume")
|
||||
col.prop(cscene, "use_volume_guiding", text="Volume", text_ctxt=i18n_contexts.id_id)
|
||||
|
||||
|
||||
class CYCLES_RENDER_PT_sampling_path_guiding_debug(CyclesDebugButtonsPanel, Panel):
|
||||
|
@ -530,7 +531,7 @@ class CYCLES_RENDER_PT_light_paths_max_bounces(CyclesButtonsPanel, Panel):
|
|||
col.prop(cscene, "diffuse_bounces", text="Diffuse")
|
||||
col.prop(cscene, "glossy_bounces", text="Glossy")
|
||||
col.prop(cscene, "transmission_bounces", text="Transmission")
|
||||
col.prop(cscene, "volume_bounces", text="Volume")
|
||||
col.prop(cscene, "volume_bounces", text="Volume", text_ctxt=i18n_contexts.id_id)
|
||||
|
||||
col = layout.column(align=True)
|
||||
col.prop(cscene, "transparent_max_bounces", text="Transparent")
|
||||
|
@ -980,7 +981,7 @@ class CYCLES_RENDER_PT_passes_light(CyclesButtonsPanel, Panel):
|
|||
col.prop(view_layer, "use_pass_transmission_indirect", text="Indirect")
|
||||
col.prop(view_layer, "use_pass_transmission_color", text="Color")
|
||||
|
||||
col = layout.column(heading="Volume", align=True)
|
||||
col = layout.column(heading="Volume", heading_ctxt=i18n_contexts.id_id, align=True)
|
||||
col.prop(cycles_view_layer, "use_pass_volume_direct", text="Direct")
|
||||
col.prop(cycles_view_layer, "use_pass_volume_indirect", text="Indirect")
|
||||
|
||||
|
@ -1577,6 +1578,7 @@ class CYCLES_WORLD_PT_surface(CyclesButtonsPanel, Panel):
|
|||
|
||||
class CYCLES_WORLD_PT_volume(CyclesButtonsPanel, Panel):
|
||||
bl_label = "Volume"
|
||||
bl_translation_context = i18n_contexts.id_id
|
||||
bl_context = "world"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
@ -1696,6 +1698,7 @@ class CYCLES_WORLD_PT_settings_surface(CyclesButtonsPanel, Panel):
|
|||
|
||||
class CYCLES_WORLD_PT_settings_volume(CyclesButtonsPanel, Panel):
|
||||
bl_label = "Volume"
|
||||
bl_translation_context = i18n_contexts.id_id
|
||||
bl_parent_id = "CYCLES_WORLD_PT_settings"
|
||||
bl_context = "world"
|
||||
|
||||
|
@ -1791,6 +1794,7 @@ class CYCLES_MATERIAL_PT_surface(CyclesButtonsPanel, Panel):
|
|||
|
||||
class CYCLES_MATERIAL_PT_volume(CyclesButtonsPanel, Panel):
|
||||
bl_label = "Volume"
|
||||
bl_translation_context = i18n_contexts.id_id
|
||||
bl_context = "material"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
@ -1874,6 +1878,7 @@ class CYCLES_MATERIAL_PT_settings_surface(CyclesButtonsPanel, Panel):
|
|||
|
||||
class CYCLES_MATERIAL_PT_settings_volume(CyclesButtonsPanel, Panel):
|
||||
bl_label = "Volume"
|
||||
bl_translation_context = i18n_contexts.id_id
|
||||
bl_parent_id = "CYCLES_MATERIAL_PT_settings"
|
||||
bl_context = "material"
|
||||
|
||||
|
|
|
@ -580,7 +580,6 @@ class Mesh(bpy_types.ID):
|
|||
vertex_indices = tuple(chain.from_iterable(faces))
|
||||
loop_starts = tuple(islice(chain([0], accumulate(face_lengths)), faces_len))
|
||||
|
||||
self.polygons.foreach_set("loop_total", face_lengths)
|
||||
self.polygons.foreach_set("loop_start", loop_starts)
|
||||
self.polygons.foreach_set("vertices", vertex_indices)
|
||||
|
||||
|
|
|
@ -242,7 +242,6 @@ class AddTorus(Operator, object_utils.AddObjectHelper):
|
|||
|
||||
mesh.vertices.foreach_set("co", verts_loc)
|
||||
mesh.polygons.foreach_set("loop_start", range(0, nbr_loops, 4))
|
||||
mesh.polygons.foreach_set("loop_total", (4,) * nbr_polys)
|
||||
mesh.loops.foreach_set("vertex_index", faces)
|
||||
|
||||
if self.generate_uvs:
|
||||
|
|
|
@ -868,7 +868,6 @@ class CLIP_OT_setup_tracking_scene(Operator):
|
|||
mesh.polygons.add(nbr_polys)
|
||||
|
||||
mesh.polygons.foreach_set("loop_start", range(0, nbr_loops, 4))
|
||||
mesh.polygons.foreach_set("loop_total", (4,) * nbr_polys)
|
||||
mesh.loops.foreach_set("vertex_index", faces)
|
||||
|
||||
mesh.update()
|
||||
|
|
|
@ -618,7 +618,6 @@ class MakeDupliFace(Operator):
|
|||
mesh.vertices.foreach_set("co", face_verts)
|
||||
mesh.loops.foreach_set("vertex_index", faces)
|
||||
mesh.polygons.foreach_set("loop_start", range(0, nbr_faces * 4, 4))
|
||||
mesh.polygons.foreach_set("loop_total", (4,) * nbr_faces)
|
||||
mesh.update() # generates edge data
|
||||
|
||||
ob_new = bpy.data.objects.new(mesh.name, mesh)
|
||||
|
|
|
@ -592,6 +592,7 @@ class NODE_MT_category_GEO_VECTOR(Menu):
|
|||
class NODE_MT_category_GEO_VOLUME(Menu):
|
||||
bl_idname = "NODE_MT_category_GEO_VOLUME"
|
||||
bl_label = "Volume"
|
||||
bl_translation_context = i18n_contexts.id_id
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
import bpy
|
||||
from bpy.types import Panel
|
||||
from bpy.app.translations import contexts as i18n_contexts
|
||||
from rna_prop_ui import PropertyPanel
|
||||
from bl_ui.utils import PresetPanel
|
||||
|
||||
|
@ -67,6 +68,7 @@ class DATA_PT_context_camera(CameraButtonsPanel, Panel):
|
|||
|
||||
class DATA_PT_lens(CameraButtonsPanel, Panel):
|
||||
bl_label = "Lens"
|
||||
bl_translation_context = i18n_contexts.id_camera
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
from bpy.types import Panel
|
||||
from bpy.app.translations import contexts as i18n_contexts
|
||||
|
||||
|
||||
class DataButtonsPanel:
|
||||
|
@ -15,6 +16,7 @@ class DataButtonsPanel:
|
|||
|
||||
class DATA_PT_empty(DataButtonsPanel, Panel):
|
||||
bl_label = "Empty"
|
||||
bl_translation_context = i18n_contexts.id_id
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
import bpy
|
||||
from bpy.app.translations import contexts as i18n_contexts
|
||||
from bpy.types import Panel
|
||||
from rna_prop_ui import PropertyPanel
|
||||
|
||||
|
@ -89,7 +90,7 @@ class DATA_PT_EEVEE_light(DataButtonsPanel, Panel):
|
|||
|
||||
col.prop(light, "diffuse_factor", text="Diffuse")
|
||||
col.prop(light, "specular_factor", text="Specular")
|
||||
col.prop(light, "volume_factor", text="Volume")
|
||||
col.prop(light, "volume_factor", text="Volume", text_ctxt=i18n_contexts.id_id)
|
||||
|
||||
col.separator()
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
import bpy
|
||||
from bpy.types import Menu, Panel, UIList
|
||||
from bpy.app.translations import contexts as i18n_contexts
|
||||
from rna_prop_ui import PropertyPanel
|
||||
from bpy_extras.node_utils import find_node_input
|
||||
|
||||
|
@ -176,6 +177,7 @@ class EEVEE_MATERIAL_PT_surface(MaterialButtonsPanel, Panel):
|
|||
|
||||
class EEVEE_MATERIAL_PT_volume(MaterialButtonsPanel, Panel):
|
||||
bl_label = "Volume"
|
||||
bl_translation_context = i18n_contexts.id_id
|
||||
bl_context = "material"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {'BLENDER_EEVEE'}
|
||||
|
|
|
@ -164,8 +164,8 @@ class RENDER_PT_time_stretching(RenderOutputButtonsPanel, Panel):
|
|||
rd = context.scene.render
|
||||
|
||||
col = layout.column(align=True)
|
||||
col.prop(rd, "frame_map_old", text="Old")
|
||||
col.prop(rd, "frame_map_new", text="New")
|
||||
col.prop(rd, "frame_map_old", text="Old", text_ctxt=i18n_contexts.time)
|
||||
col.prop(rd, "frame_map_new", text="New", text_ctxt=i18n_contexts.time)
|
||||
|
||||
|
||||
class RENDER_PT_post_processing(RenderOutputButtonsPanel, Panel):
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
from bpy.types import Menu, Panel, UIList, ViewLayer
|
||||
from bpy.app.translations import contexts as i18n_contexts
|
||||
|
||||
from rna_prop_ui import PropertyPanel
|
||||
|
||||
|
@ -140,7 +141,7 @@ class VIEWLAYER_PT_eevee_layer_passes_light(ViewLayerButtonsPanel, Panel):
|
|||
col.prop(view_layer, "use_pass_glossy_direct", text="Light")
|
||||
col.prop(view_layer, "use_pass_glossy_color", text="Color")
|
||||
|
||||
col = layout.column(heading="Volume", align=True)
|
||||
col = layout.column(heading="Volume", heading_ctxt=i18n_contexts.id_id, align=True)
|
||||
col.prop(view_layer_eevee, "use_pass_volume_direct", text="Light")
|
||||
|
||||
col = layout.column(heading="Other", align=True)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
import bpy
|
||||
from bpy.types import Panel
|
||||
from bpy.app.translations import contexts as i18n_contexts
|
||||
from rna_prop_ui import PropertyPanel
|
||||
from bpy_extras.node_utils import find_node_input
|
||||
|
||||
|
@ -115,6 +116,7 @@ class EEVEE_WORLD_PT_surface(WorldButtonsPanel, Panel):
|
|||
|
||||
class EEVEE_WORLD_PT_volume(WorldButtonsPanel, Panel):
|
||||
bl_label = "Volume"
|
||||
bl_translation_context = i18n_contexts.id_id
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {'BLENDER_EEVEE'}
|
||||
|
||||
|
|
|
@ -890,6 +890,7 @@ class CLIP_PT_tracking_lens(Panel):
|
|||
bl_region_type = 'UI'
|
||||
bl_category = "Track"
|
||||
bl_label = "Lens"
|
||||
bl_translation_context = i18n_contexts.id_camera
|
||||
bl_parent_id = 'CLIP_PT_tracking_camera'
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
|
|
@ -1762,7 +1762,7 @@ class SEQUENCER_PT_scene(SequencerButtonsPanel, Panel):
|
|||
sub.use_property_decorate = True
|
||||
split = sub.split(factor=0.4, align=True)
|
||||
split.alignment = 'RIGHT'
|
||||
split.label(text="Volume")
|
||||
split.label(text="Volume", text_ctxt=i18n_contexts.id_sound)
|
||||
split.prop(scene, "audio_volume", text="")
|
||||
sub.use_property_decorate = False
|
||||
|
||||
|
@ -1993,7 +1993,7 @@ class SEQUENCER_PT_adjust_sound(SequencerButtonsPanel, Panel):
|
|||
|
||||
split = col.split(factor=0.4)
|
||||
split.alignment = 'RIGHT'
|
||||
split.label(text="Volume")
|
||||
split.label(text="Volume", text_ctxt=i18n_contexts.id_sound)
|
||||
split.prop(strip, "volume", text="")
|
||||
|
||||
audio_channels = context.scene.render.ffmpeg.audio_channels
|
||||
|
|
|
@ -418,7 +418,7 @@ class USERPREF_PT_edit_objects_duplicate_data(EditingPanel, CenterAlignMixIn, Pa
|
|||
col.prop(edit, "use_duplicate_surface", text="Surface")
|
||||
col.prop(edit, "use_duplicate_text", text="Text")
|
||||
# col.prop(edit, "use_duplicate_texture", text="Texture") # Not implemented.
|
||||
col.prop(edit, "use_duplicate_volume", text="Volume")
|
||||
col.prop(edit, "use_duplicate_volume", text="Volume", text_ctxt=i18n_contexts.id_id)
|
||||
|
||||
|
||||
class USERPREF_PT_edit_cursor(EditingPanel, CenterAlignMixIn, Panel):
|
||||
|
|
|
@ -2310,7 +2310,7 @@ class VIEW3D_MT_add(Menu):
|
|||
layout.operator("object.text_add", text="Text", icon='OUTLINER_OB_FONT')
|
||||
if context.preferences.experimental.use_new_point_cloud_type:
|
||||
layout.operator("object.pointcloud_add", text="Point Cloud", icon='OUTLINER_OB_POINTCLOUD')
|
||||
layout.menu("VIEW3D_MT_volume_add", text="Volume", icon='OUTLINER_OB_VOLUME')
|
||||
layout.menu("VIEW3D_MT_volume_add", text="Volume", text_ctxt=i18n_contexts.id_id, icon='OUTLINER_OB_VOLUME')
|
||||
layout.operator_menu_enum("object.gpencil_add", "type", text="Grease Pencil", icon='OUTLINER_OB_GREASEPENCIL')
|
||||
|
||||
layout.separator()
|
||||
|
|
|
@ -2131,16 +2131,16 @@ static const char *get_obdata_defname(int type)
|
|||
case OB_POINTCLOUD:
|
||||
return DATA_("PointCloud");
|
||||
case OB_VOLUME:
|
||||
return DATA_("Volume");
|
||||
return CTX_DATA_(BLT_I18NCONTEXT_ID_ID, "Volume");
|
||||
case OB_EMPTY:
|
||||
return DATA_("Empty");
|
||||
return CTX_DATA_(BLT_I18NCONTEXT_ID_ID, "Empty");
|
||||
case OB_GPENCIL_LEGACY:
|
||||
return DATA_("GPencil");
|
||||
case OB_LIGHTPROBE:
|
||||
return DATA_("LightProbe");
|
||||
default:
|
||||
CLOG_ERROR(&LOG, "Internal error, bad type: %d", type);
|
||||
return DATA_("Empty");
|
||||
return CTX_DATA_(BLT_I18NCONTEXT_ID_ID, "Empty");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -82,55 +82,55 @@ const char *BLT_translate_do_new_dataname(const char *msgctxt, const char *msgid
|
|||
#define BLT_I18NCONTEXT_ID_ACTION "Action"
|
||||
#define BLT_I18NCONTEXT_ID_ARMATURE "Armature"
|
||||
#define BLT_I18NCONTEXT_ID_BRUSH "Brush"
|
||||
#define BLT_I18NCONTEXT_ID_CAMERA "Camera"
|
||||
#define BLT_I18NCONTEXT_ID_CACHEFILE "CacheFile"
|
||||
#define BLT_I18NCONTEXT_ID_CAMERA "Camera"
|
||||
#define BLT_I18NCONTEXT_ID_COLLECTION "Collection"
|
||||
#define BLT_I18NCONTEXT_ID_CURVES "Curves"
|
||||
#define BLT_I18NCONTEXT_ID_CURVE_LEGACY "Curve"
|
||||
#define BLT_I18NCONTEXT_ID_FREESTYLELINESTYLE "FreestyleLineStyle"
|
||||
#define BLT_I18NCONTEXT_ID_GPENCIL "GPencil"
|
||||
#define BLT_I18NCONTEXT_ID_CURVES "Curves"
|
||||
#define BLT_I18NCONTEXT_ID_ID "ID"
|
||||
#define BLT_I18NCONTEXT_ID_IMAGE "Image"
|
||||
// #define BLT_I18NCONTEXT_ID_IPO "Ipo" /* DEPRECATED */
|
||||
#define BLT_I18NCONTEXT_ID_SHAPEKEY "Key"
|
||||
#define BLT_I18NCONTEXT_ID_SIMULATION "Simulation"
|
||||
#define BLT_I18NCONTEXT_ID_LIGHT "Light"
|
||||
#define BLT_I18NCONTEXT_ID_LIBRARY "Library"
|
||||
#define BLT_I18NCONTEXT_ID_LATTICE "Lattice"
|
||||
#define BLT_I18NCONTEXT_ID_LIBRARY "Library"
|
||||
#define BLT_I18NCONTEXT_ID_LIGHT "Light"
|
||||
#define BLT_I18NCONTEXT_ID_LIGHTPROBE "LightProbe"
|
||||
#define BLT_I18NCONTEXT_ID_MASK "Mask"
|
||||
#define BLT_I18NCONTEXT_ID_MATERIAL "Material"
|
||||
#define BLT_I18NCONTEXT_ID_METABALL "Metaball"
|
||||
#define BLT_I18NCONTEXT_ID_MESH "Mesh"
|
||||
#define BLT_I18NCONTEXT_ID_METABALL "Metaball"
|
||||
#define BLT_I18NCONTEXT_ID_MOVIECLIP "MovieClip"
|
||||
#define BLT_I18NCONTEXT_ID_NODETREE "NodeTree"
|
||||
#define BLT_I18NCONTEXT_ID_OBJECT "Object"
|
||||
#define BLT_I18NCONTEXT_ID_PAINTCURVE "PaintCurve"
|
||||
#define BLT_I18NCONTEXT_ID_PALETTE "Palette"
|
||||
#define BLT_I18NCONTEXT_ID_PARTICLESETTINGS "ParticleSettings"
|
||||
#define BLT_I18NCONTEXT_ID_POINTCLOUD "PointCloud"
|
||||
#define BLT_I18NCONTEXT_ID_LIGHTPROBE "LightProbe"
|
||||
#define BLT_I18NCONTEXT_ID_SCENE "Scene"
|
||||
#define BLT_I18NCONTEXT_ID_SCREEN "Screen"
|
||||
#define BLT_I18NCONTEXT_ID_SEQUENCE "Sequence"
|
||||
#define BLT_I18NCONTEXT_ID_SPEAKER "Speaker"
|
||||
#define BLT_I18NCONTEXT_ID_SHAPEKEY "Key"
|
||||
#define BLT_I18NCONTEXT_ID_SIMULATION "Simulation"
|
||||
#define BLT_I18NCONTEXT_ID_SOUND "Sound"
|
||||
#define BLT_I18NCONTEXT_ID_TEXTURE "Texture"
|
||||
#define BLT_I18NCONTEXT_ID_SPEAKER "Speaker"
|
||||
#define BLT_I18NCONTEXT_ID_TEXT "Text"
|
||||
#define BLT_I18NCONTEXT_ID_TEXTURE "Texture"
|
||||
#define BLT_I18NCONTEXT_ID_VFONT "VFont"
|
||||
#define BLT_I18NCONTEXT_ID_VOLUME "Volume"
|
||||
#define BLT_I18NCONTEXT_ID_WORLD "World"
|
||||
#define BLT_I18NCONTEXT_ID_WORKSPACE "WorkSpace"
|
||||
#define BLT_I18NCONTEXT_ID_WINDOWMANAGER "WindowManager"
|
||||
#define BLT_I18NCONTEXT_ID_MOVIECLIP "MovieClip"
|
||||
#define BLT_I18NCONTEXT_ID_MASK "Mask"
|
||||
#define BLT_I18NCONTEXT_ID_WORKSPACE "WorkSpace"
|
||||
#define BLT_I18NCONTEXT_ID_WORLD "World"
|
||||
|
||||
/* Editors-types contexts. */
|
||||
#define BLT_I18NCONTEXT_EDITOR_VIEW3D "View3D"
|
||||
#define BLT_I18NCONTEXT_EDITOR_FILEBROWSER "File browser"
|
||||
#define BLT_I18NCONTEXT_EDITOR_VIEW3D "View3D"
|
||||
|
||||
/* Generic contexts. */
|
||||
#define BLT_I18NCONTEXT_VIRTUAL_REALITY "Virtual reality"
|
||||
#define BLT_I18NCONTEXT_CONSTRAINT "Constraint"
|
||||
#define BLT_I18NCONTEXT_COLOR "Color"
|
||||
#define BLT_I18NCONTEXT_AMOUNT "Amount"
|
||||
#define BLT_I18NCONTEXT_COLOR "Color"
|
||||
#define BLT_I18NCONTEXT_CONSTRAINT "Constraint"
|
||||
#define BLT_I18NCONTEXT_TIME "Time"
|
||||
#define BLT_I18NCONTEXT_UNIT "Unit"
|
||||
|
||||
/* Helper for bpy.app.i18n object... */
|
||||
|
@ -155,25 +155,25 @@ typedef struct {
|
|||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_ACTION, "id_action"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_ARMATURE, "id_armature"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_BRUSH, "id_brush"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_CAMERA, "id_camera"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_CACHEFILE, "id_cachefile"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_CAMERA, "id_camera"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_COLLECTION, "id_collection"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_CURVES, "id_curves"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_CURVE_LEGACY, "id_curve"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_FREESTYLELINESTYLE, "id_fs_linestyle"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_GPENCIL, "id_gpencil"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_CURVES, "id_curves"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_ID, "id_id"), \
|
||||
BLT_I18NCONTEXTS_ITEM( \
|
||||
BLT_I18NCONTEXT_ID_IMAGE, \
|
||||
"id_image"), /* BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_IPO, "id_ipo"), */ \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SHAPEKEY, "id_shapekey"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LIGHT, "id_light"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LIBRARY, "id_library"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LATTICE, "id_lattice"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LIBRARY, "id_library"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LIGHT, "id_light"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LIGHTPROBE, "id_lightprobe"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_MASK, "id_mask"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_MATERIAL, "id_material"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_METABALL, "id_metaball"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_MESH, "id_mesh"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_METABALL, "id_metaball"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_MOVIECLIP, "id_movieclip"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_NODETREE, "id_nodetree"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_OBJECT, "id_object"), \
|
||||
|
@ -181,26 +181,26 @@ typedef struct {
|
|||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_PALETTE, "id_palette"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_PARTICLESETTINGS, "id_particlesettings"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_POINTCLOUD, "id_pointcloud"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LIGHTPROBE, "id_lightprobe"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SCENE, "id_scene"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SCREEN, "id_screen"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SEQUENCE, "id_sequence"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SHAPEKEY, "id_shapekey"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SIMULATION, "id_simulation"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SPEAKER, "id_speaker"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SOUND, "id_sound"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_TEXTURE, "id_texture"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SPEAKER, "id_speaker"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_TEXT, "id_text"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_TEXTURE, "id_texture"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_VFONT, "id_vfont"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_VOLUME, "id_volume"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_WORLD, "id_world"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_WORKSPACE, "id_workspace"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_WINDOWMANAGER, "id_windowmanager"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_EDITOR_VIEW3D, "editor_view3d"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_WORKSPACE, "id_workspace"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_WORLD, "id_world"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_EDITOR_FILEBROWSER, "editor_filebrowser"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_VIRTUAL_REALITY, "virtual_reality"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_CONSTRAINT, "constraint"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_COLOR, "color"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_EDITOR_VIEW3D, "editor_view3d"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_AMOUNT, "amount"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_COLOR, "color"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_CONSTRAINT, "constraint"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_TIME, "time"), \
|
||||
BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_UNIT, "unit"), \
|
||||
{ \
|
||||
NULL, NULL, NULL \
|
||||
|
|
|
@ -1052,7 +1052,7 @@ static void create_inspection_string_for_geometry_socket(std::stringstream &ss,
|
|||
break;
|
||||
}
|
||||
case GEO_COMPONENT_TYPE_VOLUME: {
|
||||
ss << TIP_("Volume");
|
||||
ss << CTX_TIP_(BLT_I18NCONTEXT_ID_ID, "Volume");
|
||||
break;
|
||||
}
|
||||
case GEO_COMPONENT_TYPE_EDIT: {
|
||||
|
|
|
@ -215,6 +215,7 @@ static void rna_def_text(BlenderRNA *brna)
|
|||
prop = RNA_def_property(srna, "is_modified", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
||||
RNA_def_property_boolean_funcs(prop, "rna_Text_modified_get", NULL);
|
||||
RNA_def_property_translation_context(prop, BLT_I18NCONTEXT_ID_TEXT);
|
||||
RNA_def_property_ui_text(
|
||||
prop, "Modified", "Text file on disk is different than the one in memory");
|
||||
|
||||
|
|
|
@ -2312,6 +2312,7 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
|
|||
prop = RNA_def_property(srna, "empty", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Empty", "");
|
||||
RNA_def_property_translation_context(prop, BLT_I18NCONTEXT_ID_ID);
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
|
||||
|
||||
prop = RNA_def_property(srna, "light", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
|
|
|
@ -169,7 +169,7 @@ static void panel_draw(const bContext * /*C*/, Panel *panel)
|
|||
|
||||
uiItemR(col, ptr, "mirror_object", 0, nullptr, ICON_NONE);
|
||||
|
||||
uiItemR(col, ptr, "use_clip", 0, IFACE_("Clipping"), ICON_NONE);
|
||||
uiItemR(col, ptr, "use_clip", 0, CTX_IFACE_(BLT_I18NCONTEXT_ID_MESH, "Clipping"), ICON_NONE);
|
||||
|
||||
row = uiLayoutRowWithHeading(col, true, IFACE_("Merge"));
|
||||
uiItemR(row, ptr, "use_mirror_merge", 0, "", ICON_NONE);
|
||||
|
|
|
@ -32,7 +32,8 @@ static void cmp_node_huesatval_declare(NodeDeclarationBuilder &b)
|
|||
.max(2.0f)
|
||||
.subtype(PROP_FACTOR)
|
||||
.compositor_domain_priority(2);
|
||||
b.add_input<decl::Float>(N_("Value"))
|
||||
b.add_input<decl::Float>(CTX_N_(BLT_I18NCONTEXT_COLOR, "Value"))
|
||||
.translation_context(BLT_I18NCONTEXT_COLOR)
|
||||
.default_value(1.0f)
|
||||
.min(0.0f)
|
||||
.max(2.0f)
|
||||
|
|
|
@ -7,7 +7,8 @@ namespace blender::nodes::node_fn_input_special_characters_cc {
|
|||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_output<decl::String>(N_("Line Break"));
|
||||
b.add_output<decl::String>(N_("Tab"));
|
||||
b.add_output<decl::String>(CTX_N_(BLT_I18NCONTEXT_ID_TEXT, "Tab"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_TEXT);
|
||||
}
|
||||
|
||||
class MF_SpecialCharacters : public mf::MultiFunction {
|
||||
|
|
|
@ -25,7 +25,9 @@ NODE_STORAGE_FUNCS(NodeGeometryDistributePointsInVolume)
|
|||
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Geometry>(N_("Volume")).supported_type(GEO_COMPONENT_TYPE_VOLUME);
|
||||
b.add_input<decl::Geometry>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.supported_type(GEO_COMPONENT_TYPE_VOLUME)
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
b.add_input<decl::Float>(N_("Density"))
|
||||
.default_value(1.0f)
|
||||
.min(0.0f)
|
||||
|
|
|
@ -5,13 +5,16 @@
|
|||
|
||||
#include "BKE_mesh.hh"
|
||||
|
||||
#include "BLT_translation.h"
|
||||
|
||||
#include "node_geometry_util.hh"
|
||||
|
||||
namespace blender::nodes::node_geo_input_mesh_face_area_cc {
|
||||
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_output<decl::Float>(N_("Area"))
|
||||
b.add_output<decl::Float>(CTX_N_(BLT_I18NCONTEXT_AMOUNT, "Area"))
|
||||
.translation_context(BLT_I18NCONTEXT_AMOUNT)
|
||||
.field_source()
|
||||
.description(N_("The surface area of each of the mesh's faces"));
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ static void node_declare(NodeDeclarationBuilder &b)
|
|||
{
|
||||
b.add_input<decl::Geometry>(N_("Geometry")).supported_type(GEO_COMPONENT_TYPE_MESH);
|
||||
b.add_input<decl::Material>(N_("Old"));
|
||||
b.add_input<decl::Material>(N_("New"));
|
||||
b.add_input<decl::Material>(N_("New")).translation_context(BLT_I18NCONTEXT_ID_MATERIAL);
|
||||
b.add_output<decl::Geometry>(N_("Geometry")).propagate_all();
|
||||
}
|
||||
|
||||
|
|
|
@ -22,10 +22,13 @@ namespace blender::nodes::node_geo_mean_filter_sdf_volume_cc {
|
|||
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Geometry>(N_("Volume")).supported_type(GEO_COMPONENT_TYPE_VOLUME);
|
||||
b.add_input<decl::Geometry>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.supported_type(GEO_COMPONENT_TYPE_VOLUME)
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
b.add_input<decl::Int>(N_("Iterations")).min(1).max(256).default_value(1);
|
||||
b.add_input<decl::Int>(N_("Width")).min(0).default_value(1);
|
||||
b.add_output<decl::Geometry>(N_("Volume"));
|
||||
b.add_output<decl::Geometry>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
}
|
||||
|
||||
static void search_node_add_ops(GatherAddNodeSearchParams ¶ms)
|
||||
|
|
|
@ -39,7 +39,8 @@ static void node_declare(NodeDeclarationBuilder &b)
|
|||
.default_value(3.0f)
|
||||
.min(1.01f)
|
||||
.max(10.0f);
|
||||
b.add_output<decl::Geometry>(N_("Volume"));
|
||||
b.add_output<decl::Geometry>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
}
|
||||
|
||||
static void search_node_add_ops(GatherAddNodeSearchParams ¶ms)
|
||||
|
|
|
@ -47,7 +47,8 @@ static void node_declare(NodeDeclarationBuilder &b)
|
|||
b.add_input<decl::Bool>(N_("Fill Volume"))
|
||||
.default_value(true)
|
||||
.description(N_("Initialize the density grid in every cell inside the enclosed volume"));
|
||||
b.add_output<decl::Geometry>(N_("Volume"));
|
||||
b.add_output<decl::Geometry>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
}
|
||||
|
||||
static void node_layout(uiLayout *layout, bContext * /*C*/, PointerRNA *ptr)
|
||||
|
|
|
@ -22,9 +22,12 @@ namespace blender::nodes::node_geo_offset_sdf_volume_cc {
|
|||
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Geometry>(N_("Volume")).supported_type(GEO_COMPONENT_TYPE_VOLUME);
|
||||
b.add_input<decl::Geometry>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.supported_type(GEO_COMPONENT_TYPE_VOLUME)
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
b.add_input<decl::Float>(N_("Distance")).default_value(0.1f).subtype(PROP_DISTANCE);
|
||||
b.add_output<decl::Geometry>(N_("Volume"));
|
||||
b.add_output<decl::Geometry>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
}
|
||||
|
||||
static void search_node_add_ops(GatherAddNodeSearchParams ¶ms)
|
||||
|
|
|
@ -39,7 +39,8 @@ static void node_declare(NodeDeclarationBuilder &b)
|
|||
.min(0.0f)
|
||||
.subtype(PROP_DISTANCE)
|
||||
.field_on_all();
|
||||
b.add_output<decl::Geometry>(N_("Volume"));
|
||||
b.add_output<decl::Geometry>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
}
|
||||
|
||||
static void search_node_add_ops(GatherAddNodeSearchParams ¶ms)
|
||||
|
|
|
@ -161,7 +161,8 @@ static void node_declare(NodeDeclarationBuilder &b)
|
|||
.min(0.0f)
|
||||
.subtype(PROP_DISTANCE)
|
||||
.field_on_all();
|
||||
b.add_output<decl::Geometry>(N_("Volume"));
|
||||
b.add_output<decl::Geometry>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
}
|
||||
|
||||
static void node_layout(uiLayout *layout, bContext * /*C*/, PointerRNA *ptr)
|
||||
|
|
|
@ -25,7 +25,8 @@ static void node_declare(NodeDeclarationBuilder &b)
|
|||
.default_value(3.0f)
|
||||
.min(1.01f)
|
||||
.max(10.0f);
|
||||
b.add_output<decl::Geometry>(N_("Volume"));
|
||||
b.add_output<decl::Geometry>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
}
|
||||
|
||||
static void search_node_add_ops(GatherAddNodeSearchParams ¶ms)
|
||||
|
|
|
@ -10,7 +10,9 @@ static void node_declare(NodeDeclarationBuilder &b)
|
|||
b.add_output<decl::Geometry>(N_("Mesh")).propagate_all();
|
||||
b.add_output<decl::Geometry>(N_("Point Cloud")).propagate_all();
|
||||
b.add_output<decl::Geometry>(N_("Curve")).propagate_all();
|
||||
b.add_output<decl::Geometry>(N_("Volume")).propagate_all();
|
||||
b.add_output<decl::Geometry>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID)
|
||||
.propagate_all();
|
||||
b.add_output<decl::Geometry>(N_("Instances")).propagate_all();
|
||||
}
|
||||
|
||||
|
|
|
@ -49,7 +49,8 @@ static void node_declare(NodeDeclarationBuilder &b)
|
|||
.default_value(32)
|
||||
.min(2);
|
||||
|
||||
b.add_output<decl::Geometry>(N_("Volume"));
|
||||
b.add_output<decl::Geometry>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
}
|
||||
|
||||
static float map(const float x,
|
||||
|
|
|
@ -27,7 +27,9 @@ NODE_STORAGE_FUNCS(NodeGeometryVolumeToMesh)
|
|||
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Geometry>(N_("Volume")).supported_type(GEO_COMPONENT_TYPE_VOLUME);
|
||||
b.add_input<decl::Geometry>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID)
|
||||
.supported_type(GEO_COMPONENT_TYPE_VOLUME);
|
||||
b.add_input<decl::Float>(N_("Voxel Size"))
|
||||
.default_value(0.3f)
|
||||
.min(0.01f)
|
||||
|
|
|
@ -114,7 +114,7 @@ void GeoNodeExecParams::check_input_geometry_set(StringRef identifier,
|
|||
break;
|
||||
}
|
||||
case GEO_COMPONENT_TYPE_VOLUME: {
|
||||
message += TIP_("Volume");
|
||||
message += CTX_TIP_(BLT_I18NCONTEXT_ID_ID, "Volume");
|
||||
break;
|
||||
}
|
||||
case GEO_COMPONENT_TYPE_CURVE: {
|
||||
|
|
|
@ -13,7 +13,11 @@ static void node_declare(NodeDeclarationBuilder &b)
|
|||
{
|
||||
b.add_input<decl::Float>(N_("Hue")).default_value(0.5f).min(0.0f).max(1.0f);
|
||||
b.add_input<decl::Float>(N_("Saturation")).default_value(1.0f).min(0.0f).max(2.0f);
|
||||
b.add_input<decl::Float>(N_("Value")).default_value(1.0f).min(0.0f).max(2.0f);
|
||||
b.add_input<decl::Float>(CTX_N_(BLT_I18NCONTEXT_COLOR, "Value"))
|
||||
.default_value(1.0f)
|
||||
.min(0.0f)
|
||||
.max(2.0f)
|
||||
.translation_context(BLT_I18NCONTEXT_COLOR);
|
||||
b.add_input<decl::Float>(N_("Fac")).default_value(1.0f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f});
|
||||
b.add_output<decl::Color>(N_("Color"));
|
||||
|
|
|
@ -10,7 +10,8 @@ namespace blender::nodes::node_shader_output_material_cc {
|
|||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Shader>(N_("Surface"));
|
||||
b.add_input<decl::Shader>(N_("Volume"));
|
||||
b.add_input<decl::Shader>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
b.add_input<decl::Vector>(N_("Displacement")).hide_value();
|
||||
b.add_input<decl::Float>(N_("Thickness")).hide_value().unavailable(); /* Not used for now. */
|
||||
}
|
||||
|
|
|
@ -8,7 +8,8 @@ namespace blender::nodes::node_shader_output_world_cc {
|
|||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Shader>(N_("Surface"));
|
||||
b.add_input<decl::Shader>(N_("Volume"));
|
||||
b.add_input<decl::Shader>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
}
|
||||
|
||||
static int node_shader_gpu_output_world(GPUMaterial *mat,
|
||||
|
|
|
@ -10,7 +10,8 @@ static void node_declare(NodeDeclarationBuilder &b)
|
|||
b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f});
|
||||
b.add_input<decl::Float>(N_("Density")).default_value(1.0f).min(0.0f).max(1000.0f);
|
||||
b.add_input<decl::Float>(N_("Weight")).unavailable();
|
||||
b.add_output<decl::Shader>(N_("Volume"));
|
||||
b.add_output<decl::Shader>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
}
|
||||
|
||||
static int node_shader_gpu_volume_absorption(GPUMaterial *mat,
|
||||
|
|
|
@ -30,7 +30,8 @@ static void node_declare(NodeDeclarationBuilder &b)
|
|||
b.add_input<decl::Float>(N_("Temperature")).default_value(1000.0f).min(0.0f).max(6500.0f);
|
||||
b.add_input<decl::String>(N_("Temperature Attribute"));
|
||||
b.add_input<decl::Float>(N_("Weight")).unavailable();
|
||||
b.add_output<decl::Shader>(N_("Volume"));
|
||||
b.add_output<decl::Shader>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
}
|
||||
|
||||
static void node_shader_init_volume_principled(bNodeTree * /*ntree*/, bNode *node)
|
||||
|
|
|
@ -15,7 +15,8 @@ static void node_declare(NodeDeclarationBuilder &b)
|
|||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Weight")).unavailable();
|
||||
b.add_output<decl::Shader>(N_("Volume"));
|
||||
b.add_output<decl::Shader>(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume"))
|
||||
.translation_context(BLT_I18NCONTEXT_ID_ID);
|
||||
}
|
||||
|
||||
static int node_shader_gpu_volume_scatter(GPUMaterial *mat,
|
||||
|
|
|
@ -1099,7 +1099,8 @@ const char *WM_key_event_string(const short type, const bool compact)
|
|||
return IFACE_("OS");
|
||||
} break;
|
||||
case EVT_TABKEY:
|
||||
return key_event_glyph_or_text(font_id, IFACE_("Tab"), "\xe2\xad\xbe");
|
||||
return key_event_glyph_or_text(
|
||||
font_id, CTX_N_(BLT_I18NCONTEXT_UI_EVENTS, "Tab"), "\xe2\xad\xbe");
|
||||
case EVT_BACKSPACEKEY:
|
||||
return key_event_glyph_or_text(font_id, IFACE_("Bksp"), "\xe2\x8c\xab");
|
||||
case EVT_ESCKEY:
|
||||
|
|
Loading…
Reference in New Issue