27 #include <structmember.h>
48 #include "../generic/python_utildefines.h"
50 #define STR_SOURCE_TYPES "'IMAGE', 'MOVIE', 'BLEND', 'FONT'"
53 bpy_utils_previews_new_doc,
54 ".. method:: new(name)\n"
56 " Generate a new empty preview.\n"
58 " :arg name: The name (unique id) identifying the preview.\n"
59 " :type name: string\n"
60 " :return: The Preview matching given name, or a new empty one.\n"
61 " :rtype: :class:`bpy.types.ImagePreview`\n"
62 " :rtype: :class:`bpy.types.ImagePreview`\n"
65 " :raises KeyError: if ``name`` already exists.");
72 if (!PyArg_ParseTuple(args,
"s:new", &name)) {
83 bpy_utils_previews_load_doc,
84 ".. method:: load(name, filepath, filetype, force_reload=False)\n"
86 " Generate a new preview from given file path.\n"
88 " :arg name: The name (unique id) identifying the preview.\n"
89 " :type name: string\n"
90 " :arg filepath: The file path to generate the preview from.\n"
91 " :type filepath: string\n"
92 " :arg filetype: The type of file, needed to generate the preview in [" STR_SOURCE_TYPES
94 " :type filetype: string\n"
95 " :arg force_reload: If True, force running thumbnail manager even if preview already "
97 " :type force_reload: bool\n"
98 " :return: The Preview matching given name, or a new empty one.\n"
99 " :rtype: :class:`bpy.types.ImagePreview`\n"
102 " :raises KeyError: if ``name`` already exists.");
105 char *name, *path, *path_type_s;
106 int path_type, force_reload =
false;
111 if (!PyArg_ParseTuple(args,
"sss|p:load", &name, &path, &path_type_s, &force_reload)) {
115 if (
STREQ(path_type_s,
"IMAGE")) {
118 else if (
STREQ(path_type_s,
"MOVIE")) {
121 else if (
STREQ(path_type_s,
"BLEND")) {
124 else if (
STREQ(path_type_s,
"FONT")) {
128 PyErr_Format(PyExc_ValueError,
143 ".. method:: release(name)\n"
145 " Release (free) a previously created preview.\n"
148 " :arg name: The name (unique id) identifying the preview.\n"
149 " :type name: string\n");
154 if (!PyArg_ParseTuple(args,
"s:release", &name)) {
170 bpy_utils_previews_release_doc},
175 bpy_utils_previews_doc,
176 "This object contains basic static methods to handle cached (non-ID) previews in Blender\n"
177 "(low-level API, not exposed to final users).");
179 PyModuleDef_HEAD_INIT,
180 "bpy._utils_previews",
181 bpy_utils_previews_doc,
void BKE_previewimg_cached_release(const char *name)
struct PreviewImage * BKE_previewimg_cached_ensure(const char *name)
struct PreviewImage * BKE_previewimg_cached_thumbnail_read(const char *name, const char *path, const int source, bool force_update)
ID and Library types, which are fundamental for sdna.
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
StructRNA RNA_ImagePreview
PyObject * pyrna_struct_CreatePyObject(PointerRNA *ptr)
PyDoc_STRVAR(bpy_utils_previews_new_doc, ".. method:: new(name)\n" "\n" " Generate a new empty preview.\n" "\n" " :arg name: The name (unique id) identifying the preview.\n" " :type name: string\n" " :return: The Preview matching given name, or a new empty one.\n" " :rtype: :class:`bpy.types.ImagePreview`\n" " :rtype: :class:`bpy.types.ImagePreview`\n" " :raises KeyError: if ``name`` already exists.")
static PyObject * bpy_utils_previews_load(PyObject *UNUSED(self), PyObject *args)
static struct PyMethodDef bpy_utils_previews_methods[]
static PyObject * bpy_utils_previews_new(PyObject *UNUSED(self), PyObject *args)
static struct PyModuleDef bpy_utils_previews_module
PyObject * BPY_utils_previews_module(void)
static PyObject * bpy_utils_previews_release(PyObject *UNUSED(self), PyObject *args)
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)