Lines Matching defs:unit

111    } unit[MAX_TEXTURE_COORD_UNITS];
280 key->unit[i].enabled = 1;
283 key->unit[i].source_index = texObj->TargetIndex;
288 key->unit[i].shadow = (format == GL_DEPTH_COMPONENT ||
292 key->unit[i].ModeRGB = comb->ModeRGB;
293 key->unit[i].ModeA = comb->ModeA;
294 key->unit[i].ScaleShiftRGB = comb->ScaleShiftRGB;
295 key->unit[i].ScaleShiftA = comb->ScaleShiftA;
296 key->unit[i].NumArgsRGB = comb->NumArgsRGB;
297 key->unit[i].NumArgsA = comb->NumArgsA;
299 memcpy(key->unit[i].ArgsRGB, comb->ArgsRGB, sizeof comb->ArgsRGB);
300 memcpy(key->unit[i].ArgsA, comb->ArgsA, sizeof comb->ArgsA);
326 keySize = sizeof(*key) - sizeof(key->unit)
327 + key->nr_enabled_units * sizeof(key->unit[0]);
343 /* Reg containing each texture unit's sampled texture color,
379 GLuint src, GLuint unit)
386 return new(p->mem_ctx) ir_dereference_variable(p->src_texture[unit]);
403 var->data.max_array_access = MAX2(var->data.max_array_access, (int)unit);
405 new(p->mem_ctx) ir_constant(unit));
433 GLuint unit,
439 src = get_source(p, source, unit);
465 * texture unit's combinder state. When the RGB and A sources and
468 static GLboolean args_match( const struct state_key *key, GLuint unit )
470 GLuint i, numArgs = key->unit[unit].NumArgsRGB;
473 if (key->unit[unit].ArgsA[i].Source != key->unit[unit].ArgsRGB[i].Source)
476 switch (key->unit[unit].ArgsA[i].Operand) {
478 switch (key->unit[unit].ArgsRGB[i].Operand) {
487 switch (key->unit[unit].ArgsRGB[i].Operand) {
514 GLuint unit,
526 src[i] = emit_combine_source( p, unit, opt[i].Source, opt[i].Operand );
586 * Generate instructions for one texture unit's env/combiner mode.
589 emit_texenv(texenv_fragment_program *p, GLuint unit)
595 if (!key->unit[unit].enabled) {
599 switch (key->unit[unit].ModeRGB) {
601 alpha_shift = key->unit[unit].ScaleShiftA;
609 rgb_shift = key->unit[unit].ScaleShiftRGB;
610 alpha_shift = key->unit[unit].ScaleShiftA;
619 else if (need_saturate(key->unit[unit].ModeRGB))
626 else if (need_saturate(key->unit[unit].ModeA))
637 if (key->unit[unit].ModeRGB == key->unit[unit].ModeA &&
638 args_match(key, unit)) {
639 val = emit_combine(p, unit,
640 key->unit[unit].NumArgsRGB,
641 key->unit[unit].ModeRGB,
642 key->unit[unit].ArgsRGB);
649 else if (key->unit[unit].ModeRGB == TEXENV_MODE_DOT3_RGBA_EXT ||
650 key->unit[unit].ModeRGB == TEXENV_MODE_DOT3_RGBA) {
651 ir_rvalue *val = emit_combine(p, unit,
652 key->unit[unit].NumArgsRGB,
653 key->unit[unit].ModeRGB,
654 key->unit[unit].ArgsRGB);
664 val = emit_combine(p, unit,
665 key->unit[unit].NumArgsRGB,
666 key->unit[unit].ModeRGB,
667 key->unit[unit].ArgsRGB);
673 val = emit_combine(p, unit,
674 key->unit[unit].NumArgsA,
675 key->unit[unit].ModeA,
676 key->unit[unit].ArgsA);
715 static void load_texture( texenv_fragment_program *p, GLuint unit )
719 if (p->src_texture[unit])
722 const GLuint texTarget = p->state->unit[unit].source_index;
725 if (!(p->state->inputs_available & (VARYING_BIT_TEX0 << unit))) {
726 texcoord = get_current_attrib(p, VERT_ATTRIB_TEX0 + unit);
731 ir_rvalue *index = new(p->mem_ctx) ir_constant(unit);
733 tc_array->data.max_array_access = MAX2(tc_array->data.max_array_access, (int)unit);
736 if (!p->state->unit[unit].enabled) {
737 p->src_texture[unit] = p->make_temp(glsl_type::vec4_type,
739 p->emit(p->src_texture[unit]);
741 p->emit(assign(p->src_texture[unit], new(p->mem_ctx) ir_constant(0.0f)));
750 if (p->state->unit[unit].shadow)
757 if (p->state->unit[unit].shadow)
764 if (p->state->unit[unit].shadow)
771 if (p->state->unit[unit].shadow)
778 if (p->state->unit[unit].shadow)
785 assert(!p->state->unit[unit].shadow);
790 if (p->state->unit[unit].shadow)
797 assert(!p->state->unit[unit].shadow);
803 p->src_texture[unit] = p->make_temp(glsl_type::vec4_type,
809 char *sampler_name = ralloc_asprintf(p->mem_ctx, "sampler_%d", unit);
815 /* Set the texture unit for this sampler in the same way that
819 sampler->data.binding = unit;
826 if (p->state->unit[unit].shadow) {
837 p->emit(assign(p->src_texture[unit], tex));
842 GLuint src, GLuint unit)
846 load_texture(p, unit);
871 load_texunit_sources( texenv_fragment_program *p, GLuint unit )
876 for (i = 0; i < key->unit[unit].NumArgsRGB; i++) {
877 load_texenv_source( p, key->unit[unit].ArgsRGB[i].Source, unit );
880 for (i = 0; i < key->unit[unit].NumArgsA; i++) {
881 load_texenv_source( p, key->unit[unit].ArgsA[i].Source, unit );
974 GLuint unit;
981 for (unit = 0; unit < key->nr_enabled_units; unit++)
982 if (key->unit[unit].enabled) {
983 load_texunit_sources(p, unit);
988 for (unit = 0; unit < key->nr_enabled_units; unit++) {
989 if (key->unit[unit].enabled) {
990 p->src_previous = emit_texenv(p, unit);
1035 unsigned int unit;
1076 for (unit = 0; unit < ctx->Const.MaxTextureUnits; unit++)
1077 p.src_texture[unit] = NULL;