Add Chromium-only Blender WebEngine parity work

This commit is contained in:
mes123456
2026-08-12 04:47:48 -04:00
commit 9fd26010f6
18225 changed files with 11622124 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
# SPDX-FileCopyrightText: 2006 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later
set(INC
.
..
../..
../../../../../intern/utfconv
)
set(INC_SYS
)
set(SRC
openexr_api.cpp
openexr_api.h
)
if(WITH_WEB)
set(SRC
openexr_api_stub.cc
openexr_api.h
)
endif()
set(LIB
PRIVATE bf::blenkernel
PRIVATE bf::blenlib
PRIVATE bf::dna
PRIVATE bf::intern::guardedalloc
PRIVATE bf::intern::clog
PRIVATE bf::dependencies::openexr
)
blender_add_lib(bf_imbuf_openexr "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,41 @@
/* SPDX-FileCopyrightText: 2005 Blender Authors
*
* SPDX-License-Identifier: GPL-2.0-or-later */
/** \file
* \ingroup openexr
*/
#pragma once
namespace blender {
struct ImFileColorSpace;
extern const char *imb_file_extensions_openexr[];
void imb_initopenexr();
void imb_exitopenexr();
/**
* Test presence of OpenEXR file.
* \param mem: pointer to loaded OpenEXR bit-stream.
*/
bool imb_is_a_openexr(const unsigned char *mem, size_t size);
bool imb_save_openexr(ImBuf *ibuf, const char *filepath, ImBufFlags flags);
Vector<uint8_t> imb_save_buffer_openexr(ImBuf *ibuf, ImBufFlags flags);
ImBuf *imb_load_openexr(const unsigned char *mem,
size_t size,
ImBufFlags flags,
ImFileColorSpace &r_colorspace);
ImBuf *imb_load_filepath_thumbnail_openexr(const char *filepath,
ImBufFlags flags,
size_t max_thumb_size,
ImFileColorSpace &r_colorspace,
size_t *r_width,
size_t *r_height);
} // namespace blender

View File

@@ -0,0 +1,84 @@
/* SPDX-FileCopyrightText: 2026 Blender Authors
*
* SPDX-License-Identifier: GPL-2.0-or-later */
#include "IMB_imbuf.hh"
#include "IMB_openexr.hh"
#include "openexr_api.h"
namespace blender {
const char *imb_file_extensions_openexr[] = {nullptr};
void imb_initopenexr() {}
void imb_exitopenexr() {}
bool imb_is_a_openexr(const unsigned char *, size_t)
{
return false;
}
bool imb_save_openexr(ImBuf *, const char *, ImBufFlags)
{
return false;
}
Vector<uint8_t> imb_save_buffer_openexr(ImBuf *, ImBufFlags)
{
return {};
}
ImBuf *imb_load_openexr(const unsigned char *, size_t, ImBufFlags, ImFileColorSpace &)
{
return nullptr;
}
ImBuf *imb_load_filepath_thumbnail_openexr(
const char *, ImBufFlags, size_t, ImFileColorSpace &, size_t *, size_t *)
{
return nullptr;
}
ExrHandle *IMB_exr_get_handle(bool)
{
return nullptr;
}
void IMB_exr_add_channels(
ExrHandle *, StringRefNull, StringRefNull, StringRefNull, StringRefNull, size_t, size_t, const float *, bool)
{
}
bool IMB_exr_begin_read(ExrHandle *, const char *, int *, int *, bool)
{
return false;
}
bool IMB_exr_begin_write(ExrHandle *, const char *, int, int, const double[2], int, int, const StampData *)
{
return false;
}
bool IMB_exr_set_channel(ExrHandle *, StringRefNull, int, int, float *)
{
return false;
}
void IMB_exr_read_channels(ExrHandle *) {}
void IMB_exr_write_channels(ExrHandle *) {}
void IMB_exr_multilayer_convert(ExrHandle *,
void *,
void *(*)(void *, const char *),
void *(*)(void *, const char *),
void (*)(void *, void *, const char *, float *, int, const char *, const char *))
{
}
void IMB_exr_close(ExrHandle *) {}
void IMB_exr_add_view(ExrHandle *, const char *) {}
bool IMB_exr_has_multilayer(ExrHandle *)
{
return false;
}
bool IMB_exr_get_ppm(ExrHandle *, double[2])
{
return false;
}
void IMB_exr_get_display_window(ExrHandle *, int display_size[2], int display_offset[2], int data_offset[2])
{
display_size[0] = display_size[1] = 0;
display_offset[0] = display_offset[1] = 0;
data_offset[0] = data_offset[1] = 0;
}
} // namespace blender