hsl_to_rgb.js 953 B

12345678910111213141516171819202122232425262728293031
  1. import GObject from 'gi://GObject';
  2. import * as utils from '../conveniences/utils.js';
  3. const Shell = await utils.import_in_shell_only('gi://Shell');
  4. const Clutter = await utils.import_in_shell_only('gi://Clutter');
  5. const SHADER_FILENAME = 'hsl_to_rgb.glsl';
  6. const DEFAULT_PARAMS = {};
  7. export const HslToRgbEffect = utils.IS_IN_PREFERENCES ?
  8. { default_params: DEFAULT_PARAMS } :
  9. new GObject.registerClass({
  10. GTypeName: "HslToRgbEffect",
  11. Properties: {}
  12. }, class HslToRgbEffect extends Clutter.ShaderEffect {
  13. constructor(params) {
  14. super(params);
  15. utils.setup_params(this, params);
  16. // set shader source
  17. this._source = utils.get_shader_source(Shell, SHADER_FILENAME, import.meta.url);
  18. if (this._source)
  19. this.set_shader_source(this._source);
  20. }
  21. static get default_params() {
  22. return DEFAULT_PARAMS;
  23. }
  24. });