Lines Matching refs:settings

5695 static GLuint gen_arbfp_ffp_shader(const struct ffp_frag_settings *settings, IWineD3DStateBlockImpl *stateblock)
5714 if(settings->op[stage].cop == WINED3DTOP_DISABLE) break;
5715 arg0 = settings->op[stage].carg0 & WINED3DTA_SELECTMASK;
5716 arg1 = settings->op[stage].carg1 & WINED3DTA_SELECTMASK;
5717 arg2 = settings->op[stage].carg2 & WINED3DTA_SELECTMASK;
5722 if(settings->op[stage].cop == WINED3DTOP_BLENDTEXTUREALPHA) tex_read[stage] = TRUE;
5723 if(settings->op[stage].cop == WINED3DTOP_BLENDTEXTUREALPHAPM) tex_read[stage] = TRUE;
5724 if(settings->op[stage].cop == WINED3DTOP_BUMPENVMAP) {
5728 if(settings->op[stage].cop == WINED3DTOP_BUMPENVMAPLUMINANCE) {
5732 } else if(settings->op[stage].cop == WINED3DTOP_BLENDFACTORALPHA) {
5740 if(settings->op[stage].dst == tempreg) tempreg_used = TRUE;
5745 if(settings->op[stage].aop == WINED3DTOP_DISABLE) continue;
5746 arg0 = settings->op[stage].aarg0 & WINED3DTA_SELECTMASK;
5747 arg1 = settings->op[stage].aarg1 & WINED3DTA_SELECTMASK;
5748 arg2 = settings->op[stage].aarg2 & WINED3DTA_SELECTMASK;
5770 switch(settings->fog) {
5775 default: FIXME("Unexpected fog setting %d\n", settings->fog);
5781 if(tempreg_used || settings->sRGB_write) shader_addline(&buffer, "TEMP tempreg;\n");
5798 if(settings->sRGB_write) {
5805 if(ffp_clip_emul(stateblock) && settings->emul_clipplanes) shader_addline(&buffer, "KIL fragment.texcoord[7];\n");
5808 for(stage = 0; stage < MAX_TEXTURES && settings->op[stage].cop != WINED3DTOP_DISABLE; stage++) {
5811 switch(settings->op[stage].tex_type) {
5820 if(settings->op[stage].cop == WINED3DTOP_BUMPENVMAP ||
5821 settings->op[stage].cop == WINED3DTOP_BUMPENVMAPLUMINANCE) {
5827 if(settings->op[stage].projected == proj_none) {
5829 } else if(settings->op[stage].projected == proj_count4 ||
5830 settings->op[stage].projected == proj_count3) {
5833 FIXME("Unexpected projection mode %d\n", settings->op[stage].projected);
5838 (settings->op[stage - 1].cop == WINED3DTOP_BUMPENVMAP ||
5839 settings->op[stage - 1].cop == WINED3DTOP_BUMPENVMAPLUMINANCE)) {
5848 if (settings->op[stage].projected != proj_none) {
5849 if(settings->op[stage].projected == proj_count4) {
5862 if(settings->op[stage - 1].cop == WINED3DTOP_BUMPENVMAPLUMINANCE) {
5867 } else if(settings->op[stage].projected == proj_count3) {
5879 settings->op[stage].color_fixup);
5884 if(settings->op[stage].cop == WINED3DTOP_DISABLE) {
5891 if(settings->op[stage].cop == WINED3DTOP_SELECTARG1 &&
5892 settings->op[stage].aop == WINED3DTOP_SELECTARG1) {
5893 op_equal = settings->op[stage].carg1 == settings->op[stage].aarg1;
5894 } else if(settings->op[stage].cop == WINED3DTOP_SELECTARG1 &&
5895 settings->op[stage].aop == WINED3DTOP_SELECTARG2) {
5896 op_equal = settings->op[stage].carg1 == settings->op[stage].aarg2;
5897 } else if(settings->op[stage].cop == WINED3DTOP_SELECTARG2 &&
5898 settings->op[stage].aop == WINED3DTOP_SELECTARG1) {
5899 op_equal = settings->op[stage].carg2 == settings->op[stage].aarg1;
5900 } else if(settings->op[stage].cop == WINED3DTOP_SELECTARG2 &&
5901 settings->op[stage].aop == WINED3DTOP_SELECTARG2) {
5902 op_equal = settings->op[stage].carg2 == settings->op[stage].aarg2;
5904 op_equal = settings->op[stage].aop == settings->op[stage].cop &&
5905 settings->op[stage].carg0 == settings->op[stage].aarg0 &&
5906 settings->op[stage].carg1 == settings->op[stage].aarg1 &&
5907 settings->op[stage].carg2 == settings->op[stage].aarg2;
5910 if(settings->op[stage].aop == WINED3DTOP_DISABLE) {
5911 gen_ffp_instr(&buffer, stage, TRUE, FALSE, settings->op[stage].dst,
5912 settings->op[stage].cop, settings->op[stage].carg0,
5913 settings->op[stage].carg1, settings->op[stage].carg2);
5918 gen_ffp_instr(&buffer, stage, TRUE, TRUE, settings->op[stage].dst,
5919 settings->op[stage].cop, settings->op[stage].carg0,
5920 settings->op[stage].carg1, settings->op[stage].carg2);
5922 gen_ffp_instr(&buffer, stage, TRUE, FALSE, settings->op[stage].dst,
5923 settings->op[stage].cop, settings->op[stage].carg0,
5924 settings->op[stage].carg1, settings->op[stage].carg2);
5925 gen_ffp_instr(&buffer, stage, FALSE, TRUE, settings->op[stage].dst,
5926 settings->op[stage].aop, settings->op[stage].aarg0,
5927 settings->op[stage].aarg1, settings->op[stage].aarg2);
5931 if(settings->sRGB_write) {
5975 struct ffp_frag_settings settings;
5996 /* Find or create a shader implementing the fixed function pipeline settings, then activate it */
5997 gen_ffp_frag_op(stateblock, &settings, FALSE);
5998 desc = (const struct arbfp_ffp_desc *)find_ffp_frag_shader(&priv->fragment_shaders, &settings);
6009 if(settings.op[i].cop == WINED3DTOP_DISABLE) break;
6013 memcpy(&new_desc->parent.settings, &settings, sizeof(settings));
6014 new_desc->shader = gen_arbfp_ffp_shader(&settings, stateblock);