Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Namespaces | Macros | Functions
SkSLConstantFolder.cpp File Reference
#include "src/sksl/SkSLConstantFolder.h"
#include "include/core/SkTypes.h"
#include "include/private/base/SkFloatingPoint.h"
#include "include/private/base/SkTArray.h"
#include "src/sksl/SkSLAnalysis.h"
#include "src/sksl/SkSLContext.h"
#include "src/sksl/SkSLErrorReporter.h"
#include "src/sksl/SkSLPosition.h"
#include "src/sksl/SkSLProgramSettings.h"
#include "src/sksl/ir/SkSLBinaryExpression.h"
#include "src/sksl/ir/SkSLConstructorCompound.h"
#include "src/sksl/ir/SkSLConstructorDiagonalMatrix.h"
#include "src/sksl/ir/SkSLConstructorSplat.h"
#include "src/sksl/ir/SkSLExpression.h"
#include "src/sksl/ir/SkSLLiteral.h"
#include "src/sksl/ir/SkSLModifierFlags.h"
#include "src/sksl/ir/SkSLPrefixExpression.h"
#include "src/sksl/ir/SkSLType.h"
#include "src/sksl/ir/SkSLVariable.h"
#include "src/sksl/ir/SkSLVariableReference.h"
#include <cstdint>
#include <float.h>
#include <limits>
#include <optional>
#include <string>
#include <utility>

Go to the source code of this file.

Namespaces

namespace  SkSL
 

Macros

#define RESULT(Op)
 
#define URESULT(Op)
 
#define RESULT(Op)   fold_expression(pos, leftVal Op rightVal, &resultType)
 

Functions

static bool SkSL::is_vec_or_mat (const Type &type)
 
static std::unique_ptr< ExpressionSkSL::eliminate_no_op_boolean (Position pos, const Expression &left, Operator op, const Expression &right)
 
static std::unique_ptr< ExpressionSkSL::short_circuit_boolean (Position pos, const Expression &left, Operator op, const Expression &right)
 
static std::unique_ptr< ExpressionSkSL::simplify_constant_equality (const Context &context, Position pos, const Expression &left, Operator op, const Expression &right)
 
static std::unique_ptr< ExpressionSkSL::simplify_matrix_multiplication (const Context &context, Position pos, const Expression &left, const Expression &right, int leftColumns, int leftRows, int rightColumns, int rightRows)
 
static std::unique_ptr< ExpressionSkSL::simplify_matrix_times_matrix (const Context &context, Position pos, const Expression &left, const Expression &right)
 
static std::unique_ptr< ExpressionSkSL::simplify_vector_times_matrix (const Context &context, Position pos, const Expression &left, const Expression &right)
 
static std::unique_ptr< ExpressionSkSL::simplify_matrix_times_vector (const Context &context, Position pos, const Expression &left, const Expression &right)
 
static std::unique_ptr< ExpressionSkSL::simplify_componentwise (const Context &context, Position pos, const Expression &left, Operator op, const Expression &right)
 
static std::unique_ptr< ExpressionSkSL::splat_scalar (const Context &context, const Expression &scalar, const Type &type)
 
static std::unique_ptr< ExpressionSkSL::cast_expression (const Context &context, Position pos, const Expression &expr, const Type &type)
 
static std::unique_ptr< ExpressionSkSL::zero_expression (const Context &context, Position pos, const Type &type)
 
static std::unique_ptr< ExpressionSkSL::negate_expression (const Context &context, Position pos, const Expression &expr, const Type &type)
 
static bool SkSL::contains_constant_zero (const Expression &expr)
 
static bool SkSL::is_constant_diagonal (const Expression &expr, double value)
 
static bool SkSL::is_constant_value (const Expression &expr, double value)
 
static std::unique_ptr< ExpressionSkSL::make_reciprocal_expression (const Context &context, const Expression &right)
 
static bool SkSL::error_on_divide_by_zero (const Context &context, Position pos, Operator op, const Expression &right)
 
static bool SkSL::is_scalar_op_matrix (const Expression &left, const Expression &right)
 
static bool SkSL::is_matrix_op_scalar (const Expression &left, const Expression &right)
 
static std::unique_ptr< ExpressionSkSL::simplify_arithmetic (const Context &context, Position pos, const Expression &left, Operator op, const Expression &right, const Type &resultType)
 
static std::unique_ptr< ExpressionSkSL::one_over_scalar (const Context &context, const Expression &right)
 
static std::unique_ptr< ExpressionSkSL::simplify_matrix_division (const Context &context, Position pos, const Expression &left, Operator op, const Expression &right, const Type &resultType)
 
static std::unique_ptr< ExpressionSkSL::fold_expression (Position pos, double result, const Type *resultType)
 

Macro Definition Documentation

◆ RESULT [1/2]

#define RESULT (   Op)
Value:
fold_expression(pos, (SKSL_INT)(leftVal) Op \
(SKSL_INT)(rightVal), &resultType)
SkPoint pos
int64_t SKSL_INT
Definition SkSLDefines.h:16

◆ RESULT [2/2]

#define RESULT (   Op)    fold_expression(pos, leftVal Op rightVal, &resultType)

◆ URESULT

#define URESULT (   Op)
Value:
fold_expression(pos, (SKSL_INT)((SKSL_UINT)(leftVal) Op \
(SKSL_UINT)(rightVal)), &resultType)