WIP: Brush assets project #106303

Draft
Julian Eisel wants to merge 358 commits from brush-assets-project into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
11 changed files with 45 additions and 29 deletions
Showing only changes of commit 684d837c30 - Show all commits

View File

@ -36,13 +36,16 @@ void ED_spacetype_nla();
void ED_spacetype_script();
void ED_spacetype_text();
void ED_spacetype_sequencer();
void ED_spacetype_logic();
void ED_spacetype_console();
void ED_spacetype_userpref();
void ED_spacetype_clip();
void ED_spacetype_statusbar();
void ED_spacetype_topbar();
void ED_spacetype_spreadsheet();
namespace blender::ed {
namespace spreadsheet {
void register_spacetype();
}
} // namespace blender::ed
/** \} */

View File

@ -7,4 +7,8 @@
struct ID;
struct SpaceSpreadsheet;
ID *ED_spreadsheet_get_current_id(const SpaceSpreadsheet *sspreadsheet);
namespace blender::ed::spreadsheet {
ID *get_current_id(const SpaceSpreadsheet *sspreadsheet);
}

View File

@ -84,7 +84,7 @@ void ED_spacetypes_init()
ED_spacetype_clip();
ED_spacetype_statusbar();
ED_spacetype_topbar();
ED_spacetype_spreadsheet();
spreadsheet::register_spacetype();
/* Register operator types for screen and all spaces. */
ED_operatortypes_userpref();

View File

@ -48,8 +48,7 @@
#include <sstream>
using namespace blender;
using namespace blender::ed::spreadsheet;
namespace blender::ed::spreadsheet {
static SpaceLink *spreadsheet_create(const ScrArea * /*area*/, const Scene * /*scene*/)
{
@ -193,7 +192,7 @@ static void spreadsheet_main_region_init(wmWindowManager *wm, ARegion *region)
}
}
ID *ED_spreadsheet_get_current_id(const SpaceSpreadsheet *sspreadsheet)
ID *get_current_id(const SpaceSpreadsheet *sspreadsheet)
{
if (BLI_listbase_is_empty(&sspreadsheet->viewer_path.path)) {
return nullptr;
@ -296,7 +295,7 @@ static void spreadsheet_update_context(const bContext *C)
Object *spreadsheet_get_object_eval(const SpaceSpreadsheet *sspreadsheet,
const Depsgraph *depsgraph)
{
ID *used_id = ED_spreadsheet_get_current_id(sspreadsheet);
ID *used_id = get_current_id(sspreadsheet);
if (used_id == nullptr) {
return nullptr;
}
@ -717,7 +716,7 @@ static void spreadsheet_blend_write(BlendWriter *writer, SpaceLink *sl)
BKE_viewer_path_blend_write(writer, &sspreadsheet->viewer_path);
}
void ED_spacetype_spreadsheet()
void register_spacetype()
{
SpaceType *st = MEM_cnew<SpaceType>("spacetype spreadsheet");
ARegionType *art;
@ -801,8 +800,10 @@ void ED_spacetype_spreadsheet()
art->init = ED_region_panels_init;
art->draw = spreadsheet_dataset_region_draw;
art->listener = spreadsheet_dataset_region_listener;
blender::ed::spreadsheet::spreadsheet_data_set_region_panels_register(*art);
spreadsheet_data_set_region_panels_register(*art);
BLI_addhead(&st->regiontypes, art);
BKE_spacetype_register(st);
}
} // namespace blender::ed::spreadsheet

View File

@ -487,14 +487,14 @@ std::unique_ptr<ColumnValues> VolumeDataSource::get_column_values(
if (STREQ(column_id.name, "Grid Name")) {
return std::make_unique<ColumnValues>(
IFACE_("Grid Name"), VArray<std::string>::ForFunc(size, [volume](int64_t index) {
const blender::bke::VolumeGridData *volume_grid = BKE_volume_grid_get(volume, index);
const bke::VolumeGridData *volume_grid = BKE_volume_grid_get(volume, index);
return volume_grid->name();
}));
}
if (STREQ(column_id.name, "Data Type")) {
return std::make_unique<ColumnValues>(
IFACE_("Data Type"), VArray<std::string>::ForFunc(size, [volume](int64_t index) {
const blender::bke::VolumeGridData *volume_grid = BKE_volume_grid_get(volume, index);
const bke::VolumeGridData *volume_grid = BKE_volume_grid_get(volume, index);
const VolumeGridType type = volume_grid->grid_type();
const char *name = nullptr;
RNA_enum_name_from_value(rna_enum_volume_grid_data_type_items, type, &name);
@ -504,7 +504,7 @@ std::unique_ptr<ColumnValues> VolumeDataSource::get_column_values(
if (STREQ(column_id.name, "Class")) {
return std::make_unique<ColumnValues>(
IFACE_("Class"), VArray<std::string>::ForFunc(size, [volume](int64_t index) {
const blender::bke::VolumeGridData *volume_grid = BKE_volume_grid_get(volume, index);
const bke::VolumeGridData *volume_grid = BKE_volume_grid_get(volume, index);
openvdb::GridClass grid_class = volume_grid->grid_class();
if (grid_class == openvdb::GridClass::GRID_FOG_VOLUME) {
return IFACE_("Fog Volume");

View File

@ -7,13 +7,18 @@
#include "BKE_geometry_set.hh"
#include "spreadsheet_cache.hh"
struct ARegionType;
struct bContext;
namespace blender::ed::spreadsheet {
struct SpaceSpreadsheet_Runtime {
public:
int visible_rows = 0;
int tot_rows = 0;
int tot_columns = 0;
blender::ed::spreadsheet::SpreadsheetCache cache;
SpreadsheetCache cache;
SpaceSpreadsheet_Runtime() = default;
@ -24,15 +29,10 @@ struct SpaceSpreadsheet_Runtime {
}
};
struct ARegionType;
struct bContext;
void spreadsheet_operatortypes();
void spreadsheet_update_context_path(const bContext *C);
Object *spreadsheet_get_object_eval(const SpaceSpreadsheet *sspreadsheet,
const Depsgraph *depsgraph);
namespace blender::ed::spreadsheet {
bke::GeometrySet spreadsheet_get_display_geometry_set(const SpaceSpreadsheet *sspreadsheet,
Object *object_eval);

View File

@ -22,7 +22,7 @@
#include "spreadsheet_intern.hh"
#include "spreadsheet_row_filter.hh"
using namespace blender::ed::spreadsheet;
namespace blender::ed::spreadsheet {
static int row_filter_add_exec(bContext *C, wmOperator * /*op*/)
{
@ -82,9 +82,7 @@ static void SPREADSHEET_OT_remove_row_filter_rule(wmOperatorType *ot)
static int select_component_domain_invoke(bContext *C, wmOperator *op, const wmEvent * /*event*/)
{
using namespace blender;
const auto component_type = blender::bke::GeometryComponent::Type(
RNA_int_get(op->ptr, "component_type"));
const auto component_type = bke::GeometryComponent::Type(RNA_int_get(op->ptr, "component_type"));
bke::AttrDomain domain = bke::AttrDomain(RNA_int_get(op->ptr, "attribute_domain_type"));
SpaceSpreadsheet *sspreadsheet = CTX_wm_space_spreadsheet(C);
@ -126,3 +124,5 @@ void spreadsheet_operatortypes()
WM_operatortype_append(SPREADSHEET_OT_remove_row_filter_rule);
WM_operatortype_append(SPREADSHEET_OT_change_spreadsheet_data_source);
}
} // namespace blender::ed::spreadsheet

View File

@ -31,8 +31,7 @@
#include <sstream>
using namespace blender;
using namespace blender::ed::spreadsheet;
namespace blender::ed::spreadsheet {
static void filter_panel_id_fn(void * /*row_filter_v*/, char *r_name)
{
@ -367,3 +366,5 @@ void register_row_filter_panels(ARegionType &region_type)
BLI_addtail(&region_type.paneltypes, panel_type);
}
}
} // namespace blender::ed::spreadsheet

View File

@ -6,4 +6,8 @@
struct ARegionType;
namespace blender::ed::spreadsheet {
void register_row_filter_panels(ARegionType &region_type);
}

View File

@ -76,19 +76,22 @@ namespace blender::ed::text {
struct SpaceText_Runtime;
} // namespace blender::ed::text
using SpaceText_Runtime = blender::ed::text::SpaceText_Runtime;
namespace blender::ed::spreadsheet {
struct SpaceSpreadsheet_Runtime;
} // namespace blender::ed::spreadsheet
using SpaceSpreadsheet_Runtime = blender::ed::spreadsheet::SpaceSpreadsheet_Runtime;
#else
typedef struct SpaceNode_Runtime SpaceNode_Runtime;
typedef struct SpaceOutliner_Runtime SpaceOutliner_Runtime;
typedef struct SpaceSeq_Runtime SpaceSeq_Runtime;
typedef struct SpaceText_Runtime SpaceText_Runtime;
typedef struct SpaceSpreadsheet_Runtime SpaceSpreadsheet_Runtime;
#endif
/** Defined in `file_intern.hh`. */
typedef struct SpaceFile_Runtime SpaceFile_Runtime;
/** Defined in `spreadsheet_intern.hh`. */
typedef struct SpaceSpreadsheet_Runtime SpaceSpreadsheet_Runtime;
/* -------------------------------------------------------------------- */
/** \name SpaceLink (Base)
* \{ */

View File

@ -3297,7 +3297,7 @@ const EnumPropertyItem *rna_SpaceSpreadsheet_attribute_domain_itemf(bContext * /
SpaceSpreadsheet *sspreadsheet = (SpaceSpreadsheet *)ptr->data;
auto component_type = bke::GeometryComponent::Type(sspreadsheet->geometry_component_type);
if (sspreadsheet->object_eval_state == SPREADSHEET_OBJECT_EVAL_STATE_ORIGINAL) {
ID *used_id = ED_spreadsheet_get_current_id(sspreadsheet);
ID *used_id = ed::spreadsheet::get_current_id(sspreadsheet);
if (used_id != nullptr) {
if (GS(used_id->name) == ID_OB) {
Object *used_object = (Object *)used_id;