13 #include <structmember.h>
18 #include "RNA_prototypes.h"
35 #include "../generic/python_utildefines.h"
37 #define STR_SOURCE_TYPES "'IMAGE', 'MOVIE', 'BLEND', 'FONT'"
40 bpy_utils_previews_new_doc,
41 ".. method:: new(name)\n"
43 " Generate a new empty preview.\n"
45 " :arg name: The name (unique id) identifying the preview.\n"
46 " :type name: string\n"
47 " :return: The Preview matching given name, or a new empty one.\n"
48 " :rtype: :class:`bpy.types.ImagePreview`\n"
51 " :raises KeyError: if ``name`` already exists.");
58 if (!PyArg_ParseTuple(args,
"s:new", &name)) {
69 bpy_utils_previews_load_doc,
70 ".. method:: load(name, filepath, filetype, force_reload=False)\n"
72 " Generate a new preview from given file path.\n"
74 " :arg name: The name (unique id) identifying the preview.\n"
75 " :type name: string\n"
76 " :arg filepath: The file path to generate the preview from.\n"
77 " :type filepath: string\n"
78 " :arg filetype: The type of file, needed to generate the preview in [" STR_SOURCE_TYPES
80 " :type filetype: string\n"
81 " :arg force_reload: If True, force running thumbnail manager even if preview already "
83 " :type force_reload: bool\n"
84 " :return: The Preview matching given name, or a new empty one.\n"
85 " :rtype: :class:`bpy.types.ImagePreview`\n"
88 " :raises KeyError: if ``name`` already exists.");
91 char *name, *path, *path_type_s;
92 int path_type, force_reload =
false;
97 if (!PyArg_ParseTuple(args,
"sss|p:load", &name, &path, &path_type_s, &force_reload)) {
101 if (
STREQ(path_type_s,
"IMAGE")) {
104 else if (
STREQ(path_type_s,
"MOVIE")) {
107 else if (
STREQ(path_type_s,
"BLEND")) {
110 else if (
STREQ(path_type_s,
"FONT")) {
114 PyErr_Format(PyExc_ValueError,
129 ".. method:: release(name)\n"
131 " Release (free) a previously created preview.\n"
134 " :arg name: The name (unique id) identifying the preview.\n"
135 " :type name: string\n");
140 if (!PyArg_ParseTuple(args,
"s:release", &name)) {
156 bpy_utils_previews_release_doc},
161 bpy_utils_previews_doc,
162 "This object contains basic static methods to handle cached (non-ID) previews in Blender\n"
163 "(low-level API, not exposed to final users).");
165 PyModuleDef_HEAD_INIT,
166 "bpy._utils_previews",
167 bpy_utils_previews_doc,
void BKE_previewimg_cached_release(const char *name)
struct PreviewImage * BKE_previewimg_cached_thumbnail_read(const char *name, const char *filepath, int source, bool force_update)
struct PreviewImage * BKE_previewimg_cached_ensure(const char *name)
ID and Library types, which are fundamental for sdna.
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
PyObject * pyrna_struct_CreatePyObject(PointerRNA *ptr)
static PyObject * bpy_utils_previews_load(PyObject *UNUSED(self), PyObject *args)
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" " :raises KeyError: if ``name`` already exists.")
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)