There is a new Texture data-block socket that we can use in Geometry Nodes now. This commit replaces the texture property of a node and gives it a texture input socket instead. That increases flexibility. The texture socket still has some limitations that will be lifted in the next couple of days (e.g. it's not supported by the switch node and cannot be exposed the a modifier yet). Differential Revision: https://developer.blender.org/D11222
110 lines
2.9 KiB
C++
110 lines
2.9 KiB
C++
/*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* The Original Code is Copyright (C) 2008 Blender Foundation.
|
|
* All rights reserved.
|
|
*/
|
|
|
|
/** \file
|
|
* \ingroup spbuttons
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "BLI_bitmap.h"
|
|
#include "DNA_listBase.h"
|
|
#include "RNA_types.h"
|
|
|
|
struct ARegionType;
|
|
struct ID;
|
|
struct SpaceProperties;
|
|
struct Tex;
|
|
struct bContext;
|
|
struct bContextDataResult;
|
|
struct bNode;
|
|
struct bNodeTree;
|
|
struct bNodeSocket;
|
|
struct wmOperatorType;
|
|
|
|
struct SpaceProperties_Runtime {
|
|
/** For filtering properties displayed in the space. */
|
|
char search_string[UI_MAX_NAME_STR];
|
|
/**
|
|
* Bitfield (in the same order as the tabs) for whether each tab has properties
|
|
* that match the search filter. Only valid when #search_string is set.
|
|
*/
|
|
BLI_bitmap *tab_search_results;
|
|
};
|
|
|
|
/* context data */
|
|
|
|
typedef struct ButsContextPath {
|
|
PointerRNA ptr[8];
|
|
int len;
|
|
int flag;
|
|
int collection_ctx;
|
|
} ButsContextPath;
|
|
|
|
typedef struct ButsTextureUser {
|
|
struct ButsTextureUser *next, *prev;
|
|
|
|
struct ID *id;
|
|
|
|
PointerRNA ptr;
|
|
PropertyRNA *prop;
|
|
|
|
struct bNodeTree *ntree;
|
|
struct bNode *node;
|
|
struct bNodeSocket *socket;
|
|
|
|
const char *category;
|
|
int icon;
|
|
const char *name;
|
|
|
|
int index;
|
|
} ButsTextureUser;
|
|
|
|
typedef struct ButsContextTexture {
|
|
ListBase users;
|
|
|
|
struct Tex *texture;
|
|
|
|
struct ButsTextureUser *user;
|
|
int index;
|
|
} ButsContextTexture;
|
|
|
|
/* internal exports only */
|
|
|
|
/* buttons_context.c */
|
|
void buttons_context_compute(const struct bContext *C, struct SpaceProperties *sbuts);
|
|
int buttons_context(const struct bContext *C,
|
|
const char *member,
|
|
struct bContextDataResult *result);
|
|
void buttons_context_register(struct ARegionType *art);
|
|
struct ID *buttons_context_id_path(const struct bContext *C);
|
|
|
|
extern const char *buttons_context_dir[]; /* doc access */
|
|
|
|
/* buttons_texture.c */
|
|
void buttons_texture_context_compute(const struct bContext *C, struct SpaceProperties *sbuts);
|
|
|
|
/* buttons_ops.c */
|
|
void BUTTONS_OT_start_filter(struct wmOperatorType *ot);
|
|
void BUTTONS_OT_clear_filter(struct wmOperatorType *ot);
|
|
void BUTTONS_OT_toggle_pin(struct wmOperatorType *ot);
|
|
void BUTTONS_OT_file_browse(struct wmOperatorType *ot);
|
|
void BUTTONS_OT_directory_browse(struct wmOperatorType *ot);
|
|
void BUTTONS_OT_context_menu(struct wmOperatorType *ot);
|