Lines Matching full:matrix
514 * Dereference a specific component from a scalar, vector, or matrix
536 /* Dereference a row of the matrix, then call this function again to get
854 * Generate assignment of a portion of a vector to a portion of a matrix column
877 * that are to be assigned to the column of the matrix.
895 * Generate inline code for a matrix constructor
916 /* There are three kinds of matrix constructors.
918 * - Construct a matrix from a single scalar by replicating that scalar to
919 * along the diagonal of the matrix and setting all other components to
922 * - Construct a matrix from an arbirary combination of vectors and
924 * to the matrix in colum-major order until the matrix is full.
926 * - Construct a matrix from a single matrix. The source matrix is copied
927 * to the upper left portion of the constructed matrix, and the remaining
928 * elements take values from the identity matrix.
957 /* Assign the temporary vector to each column of the destination matrix
959 * matrix. In some cases this may mean that the X component does not
960 * get assigned into the column at all (i.e., when the matrix has more
998 * "If a matrix is constructed from a matrix, then each component
1002 * identity matrix. If a matrix argument is given to a matrix
1008 /* If the source matrix is smaller, pre-initialize the relavent parts of
1009 * the destination matrix to the identity matrix.
1014 /* If the source matrix has fewer rows, every column of the destination
1043 /* Assign columns from the source matrix to the destination matrix.
1076 /* If one matrix has columns that are smaller than the columns of the
1077 * other matrix, wrap the column access of the larger with a swizzle
1119 /* Assign the current parameter to as many components of the matrix
1122 * NOTE: A single vector parameter can span two matrix columns. A
1146 * matrix. In this case col_idx==cols, but there is still data
1148 * to data outside the destination matrix.
1353 /* Count the number of matrix and nonmatrix parameters. This
1373 "matrix in GLSL 1.10",
1380 * "If a matrix argument is given to a matrix constructor, it is
1386 _mesa_glsl_error(& loc, state, "for matrix `%s' constructor, "
1387 "matrix must be only parameter",
1412 ir_rvalue *matrix = (ir_rvalue *) n;
1414 if (!matrix->type->is_matrix())
1417 /* Create a temporary containing the matrix. */
1418 ir_variable *var = new(ctx) ir_variable(matrix->type, "matrix_tmp",
1422 ir_dereference_variable(var), matrix, NULL));
1423 var->constant_value = matrix->constant_expression_value();
1425 /* Replace the matrix with dereferences of its columns. */
1426 for (int i = 0; i < matrix->type->matrix_columns; i++) {
1427 matrix->insert_before(new (ctx) ir_dereference_array(var,
1430 matrix->remove();