diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 08c3eff..a7f2688 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,7 @@ name: Continous Integration tests on: + workflow_dispatch: {} push: paths-ignore: - LICENSE @@ -16,11 +17,11 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Checkout branch - uses: actions/checkout@v3 + uses: actions/checkout@v4.1.1 with: submodules: recursive - name: Checkout SeExpr - uses: actions/checkout@v3 + uses: actions/checkout@v4.1.1 with: repository: wdas/SeExpr ref: v1-2.11 @@ -48,7 +49,7 @@ jobs: run: | make -j2 CONFIG=debug SEEXPR_HOME=$PWD/SeExprBuild - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4.3.1 with: name: openfx-io-build-ubuntu_22-release path: Bundle @@ -73,7 +74,7 @@ jobs: ./verify_plugin_loads ${BINARY_PATH}/${BINARY_NAME} - name: Upload testing artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4.3.1 with: name: openfx-io-build-ubuntu_22-testing path: TestingBundle @@ -90,7 +91,7 @@ jobs: steps: - name: Checkout branch - uses: actions/checkout@v3 + uses: actions/checkout@v4.1.1 with: submodules: recursive @@ -128,7 +129,7 @@ jobs: make -j2 CONFIG=debug - name: Upload release artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4.3.1 with: name: openfx-io-build-windows_latest-release path: Bundle @@ -152,7 +153,7 @@ jobs: ./verify_plugin_loads ${BINARY_PATH}/${BINARY_NAME} - name: Upload testing artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4.3.1 with: name: openfx-io-build-windows_latest-testing path: TestingBundle diff --git a/IOSupport/glsl.cpp b/IOSupport/glsl.cpp index f5a9ed3..61cbc63 100644 --- a/IOSupport/glsl.cpp +++ b/IOSupport/glsl.cpp @@ -332,7 +332,12 @@ OpenGLBuilder::allocateAllTextures(unsigned startIndex) unsigned height = 0; GpuShaderDesc::TextureType channel = GpuShaderDesc::TEXTURE_RGB_CHANNEL; Interpolation interpolation = INTERP_LINEAR; +# if OCIO_VERSION_HEX >= 0x2030000 + GpuShaderCreator::TextureDimensions dimensions; + m_shaderDesc->getTexture(idx, textureName, samplerName, width, height, channel, dimensions, interpolation); +# else m_shaderDesc->getTexture(idx, textureName, samplerName, width, height, channel, interpolation); +# endif if (!textureName || !*textureName || !samplerName || !*samplerName diff --git a/OIIO/ReadOIIO.cpp b/OIIO/ReadOIIO.cpp index 6f741b6..8e1eec6 100644 --- a/OIIO/ReadOIIO.cpp +++ b/OIIO/ReadOIIO.cpp @@ -129,11 +129,15 @@ typedef ImageInput* ImageInputPtr; #define kPluginName "ReadOIIO" #define kPluginGrouping "Image/Readers" -#define kPluginDescription \ - "Read images using OpenImageIO.\n\n" \ - "Output is always Premultiplied (alpha is associated).\n\n" \ - "The \"Image Premult\" parameter controls the file premultiplication state, " \ - "and can be used to fix wrong file metadata (see the help for that parameter)." +#define kPluginDescription \ + "Read images using OpenImageIO.\n\n" \ + "Output is always Premultiplied (alpha is associated).\n\n" \ + "The \"Image Premult\" parameter controls the file premultiplication state, " \ + "and can be used to fix wrong file metadata (see the help for that parameter).\n\n" \ + "When reading an OpenEXR file with a dataWindow, it is converted to an OpenFX " \ + "region of definition by flipping the y axis (y axis goes down in OpenEXR, " \ + "up in OpenFX), and adding 1 pixel in every direction if the \"Edge Pixels\" " \ + "parameter says that a black border should be added." #define kPluginIdentifier "fr.inria.openfx.ReadOIIO" #define kPluginVersionMajor 2 // Incrementing this number means that you have broken backwards compatibility of the plug-in. #define kPluginVersionMinor 0 // Increment this when you have fixed a bug or made it faster. diff --git a/OIIO/WriteOIIO.cpp b/OIIO/WriteOIIO.cpp index 2a92c1a..801a9a4 100644 --- a/OIIO/WriteOIIO.cpp +++ b/OIIO/WriteOIIO.cpp @@ -126,7 +126,7 @@ enum ETuttlePluginComponents { #define kParamOutputZIPCompressionLevel "zipCompressionLevel" #define kParamOutputZIPCompressionLevelLabel "ZIP Compression Level" #define kParamOutputZIPCompressionLevelHint \ - "Amount of compression when using Dreamworks Zip or Zips compression options. These Lossless formats are variable in level and can minimize the compression artifacts. Higher values will result in greater compression and likewise smaller file size, but increases the chance for artifacts. [EXR w/ Zip or Zips comp.]" + "Compression level for zip/deflate compression, on a scale from 1 (fastest, minimal compression) to 9 (slowest, maximal compression) [EXR, TIFF or Zfile w/ zip or zips comp.]" #define kParamOutputZIPCompressionLevelDefault 4 #define kParamOutputOrientation "orientation" @@ -1015,8 +1015,16 @@ WriteOIIOPlugin::beginEncodeParts(void* user_data, string compression; switch ((EParamCompression)compression_i) { - case eParamCompressionAuto: - break; + case eParamCompressionAuto: { + // Set compression string for formats that only have a single compression type. + static const char* formats[] = {"jpeg", "webp", "heic", "avif", nullptr}; + for (int i = 0; formats[i] != nullptr; ++i) { + if (strcmp(data->output->format_name(), formats[i]) == 0) { + compression = formats[i]; + break; + } + } + } break; case eParamCompressionNone: // EXR, TIFF, IFF compression = "none"; break; diff --git a/SeExpr/SeNoise.cpp b/SeExpr/SeNoise.cpp index a0f3500..b188cf6 100644 --- a/SeExpr/SeNoise.cpp +++ b/SeExpr/SeNoise.cpp @@ -1212,9 +1212,15 @@ SeNoisePlugin::changedParam(const InstanceChangedArgs& args, _rampInteractive->setIsSecretAndDisabled(noramp); } else if (paramName == kParamTransformResetCenter) { resetCenter(args.time); - _centerChanged->setValue(false); + // Only set if necessary + if (_centerChanged->getValue()) { + _centerChanged->setValue(false); + } } else if ((paramName == kParamTransformCenter) && ((args.reason == eChangeUserEdit) || (args.reason == eChangePluginEdit))) { - _centerChanged->setValue(true); + // Only set if necessary + if (!_centerChanged->getValue()) { + _centerChanged->setValue(true); + } } } @@ -1222,7 +1228,7 @@ void SeNoisePlugin::changedClip(const InstanceChangedArgs& args, const std::string& clipName) { - if ((clipName == kOfxImageEffectSimpleSourceClipName) && _srcClip && _srcClip->isConnected() && !_centerChanged->getValueAtTime(args.time) && (args.reason == eChangeUserEdit)) { + if ((clipName == kOfxImageEffectSimpleSourceClipName) && _srcClip && _srcClip->isConnected() && !_centerChanged->getValue() && (args.reason == eChangeUserEdit)) { resetCenter(args.time); } } diff --git a/openfx b/openfx index c763718..2303ff8 160000 --- a/openfx +++ b/openfx @@ -1 +1 @@ -Subproject commit c763718935edb60746ec2261869f5a5a7d65df65 +Subproject commit 2303ff811bee3ffe085287602f684fe5fe5357e0