Lines Matching refs:save

446  *               to save and reset to their defaults
451 struct save_state *save;
456 save = &ctx->Meta->Save[ctx->Meta->SaveStackDepth++];
457 memset(save, 0, sizeof(*save));
458 save->SavedState = state;
464 save->API = ctx->API;
474 save->ExtensionsVersion = ctx->Extensions.Version;
480 save->TransformFeedbackNeedsResume =
482 if (save->TransformFeedbackNeedsResume)
489 save->CurrentOcclusionObject = ctx->Query.CurrentOcclusionObject;
490 if (save->CurrentOcclusionObject)
491 _mesa_EndQuery(save->CurrentOcclusionObject->Target);
495 save->AlphaEnabled = ctx->Color.AlphaEnabled;
496 save->AlphaFunc = ctx->Color.AlphaFunc;
497 save->AlphaRef = ctx->Color.AlphaRef;
503 save->BlendEnabled = ctx->Color.BlendEnabled;
515 save->ColorLogicOpEnabled = ctx->Color.ColorLogicOpEnabled;
521 save->DitherFlag = ctx->Color.DitherFlag;
526 save->ColorMask = ctx->Color.ColorMask;
529 save->Depth = ctx->Depth; /* struct copy */
535 save->Fog = ctx->Fog.Enabled;
541 save->Pack = ctx->Pack;
542 save->Unpack = ctx->Unpack;
548 save->RedScale = ctx->Pixel.RedScale;
549 save->RedBias = ctx->Pixel.RedBias;
550 save->GreenScale = ctx->Pixel.GreenScale;
551 save->GreenBias = ctx->Pixel.GreenBias;
552 save->BlueScale = ctx->Pixel.BlueScale;
553 save->BlueBias = ctx->Pixel.BlueBias;
554 save->AlphaScale = ctx->Pixel.AlphaScale;
555 save->AlphaBias = ctx->Pixel.AlphaBias;
556 save->MapColorFlag = ctx->Pixel.MapColorFlag;
571 save->FrontPolygonMode = ctx->Polygon.FrontMode;
572 save->BackPolygonMode = ctx->Polygon.BackMode;
573 save->PolygonOffset = ctx->Polygon.OffsetFill;
574 save->PolygonSmooth = ctx->Polygon.SmoothFlag;
575 save->PolygonStipple = ctx->Polygon.StippleFlag;
576 save->PolygonCull = ctx->Polygon.CullFlag;
585 save->Scissor = ctx->Scissor; /* struct copy */
593 save->VertexProgramEnabled = ctx->VertexProgram.Enabled;
594 _mesa_reference_program(ctx, &save->VertexProgram,
600 save->FragmentProgramEnabled = ctx->FragmentProgram.Enabled;
601 _mesa_reference_program(ctx, &save->FragmentProgram,
607 save->ATIFragmentShaderEnabled = ctx->ATIFragmentShader.Enabled;
612 _mesa_reference_pipeline_object(ctx, &save->Pipeline,
621 _mesa_reference_program(ctx, &save->Program[i],
624 _mesa_reference_shader_program(ctx, &save->ActiveShader,
631 save->Stencil = ctx->Stencil; /* struct copy */
640 save->ActiveUnit = ctx->Texture.CurrentUnit;
641 save->EnvMode = ctx->Texture.FixedFuncUnit[0].EnvMode;
645 save->TexEnabled[u] = ctx->Texture.FixedFuncUnit[u].Enabled;
646 save->TexGenEnabled[u] = ctx->Texture.FixedFuncUnit[u].TexGenEnabled;
665 /* save current texture objects for unit[0] only */
667 _mesa_reference_texobj(&save->CurrentTexture[tgt],
678 memcpy(save->ModelviewMatrix, ctx->ModelviewMatrixStack.Top->m,
680 memcpy(save->ProjectionMatrix, ctx->ProjectionMatrixStack.Top->m,
682 memcpy(save->TextureMatrix, ctx->TextureMatrixStack[0].Top->m,
684 save->MatrixMode = ctx->Transform.MatrixMode;
704 save->ClipOrigin = ctx->Transform.ClipOrigin;
705 save->ClipDepthMode = ctx->Transform.ClipDepthMode;
712 save->ClipPlanesEnabled = ctx->Transform.ClipPlanesEnabled;
721 /* save vertex array object state */
722 _mesa_reference_vao(ctx, &save->VAO,
728 /* save viewport state */
729 save->ViewportX = ctx->ViewportArray[0].X;
730 save->ViewportY = ctx->ViewportArray[0].Y;
731 save->ViewportW = ctx->ViewportArray[0].Width;
732 save->ViewportH = ctx->ViewportArray[0].Height;
741 /* save depth range state */
742 save->DepthNear = ctx->ViewportArray[0].Near;
743 save->DepthFar = ctx->ViewportArray[0].Far;
749 save->ClampFragmentColor = ctx->Color.ClampFragmentColor;
761 save->ClampVertexColor = ctx->Light.ClampVertexColor;
771 save->CondRenderQuery = ctx->Query.CondRenderQuery;
772 save->CondRenderMode = ctx->Query.CondRenderMode;
779 save->RenderMode = ctx->RenderMode;
781 save->Select = ctx->Select; /* struct copy */
784 save->Feedback = ctx->Feedback; /* struct copy */
790 save->Multisample = ctx->Multisample; /* struct copy */
807 save->sRGBEnabled = ctx->Color.sRGBEnabled;
814 memcpy(save->ColorDrawBuffers, fb->ColorDrawBuffer,
815 sizeof(save->ColorDrawBuffers));
820 save->Lighting = ctx->Light.Enabled;
823 save->RasterDiscard = ctx->RasterDiscard;
827 _mesa_reference_framebuffer(&save->DrawBuffer, ctx->DrawBuffer);
828 _mesa_reference_framebuffer(&save->ReadBuffer, ctx->ReadBuffer);
841 struct save_state *save = &ctx->Meta->Save[ctx->Meta->SaveStackDepth - 1];
842 const GLbitfield state = save->SavedState;
849 if (save->CurrentOcclusionObject) {
850 struct gl_query_object *q = save->CurrentOcclusionObject;
861 if (ctx->Color.AlphaEnabled != save->AlphaEnabled)
862 _mesa_set_enable(ctx, GL_ALPHA_TEST, save->AlphaEnabled);
863 _mesa_AlphaFunc(save->AlphaFunc, save->AlphaRef);
867 if (ctx->Color.BlendEnabled != save->BlendEnabled) {
871 _mesa_set_enablei(ctx, GL_BLEND, i, (save->BlendEnabled >> i) & 1);
875 _mesa_set_enable(ctx, GL_BLEND, (save->BlendEnabled & 1));
878 if (ctx->Color.ColorLogicOpEnabled != save->ColorLogicOpEnabled)
879 _mesa_set_enable(ctx, GL_COLOR_LOGIC_OP, save->ColorLogicOpEnabled);
883 _mesa_set_enable(ctx, GL_DITHER, save->DitherFlag);
889 GET_COLORMASK(save->ColorMask, i)) {
891 _mesa_ColorMask(GET_COLORMASK_BIT(save->ColorMask, i, 0),
892 GET_COLORMASK_BIT(save->ColorMask, i, 1),
893 GET_COLORMASK_BIT(save->ColorMask, i, 2),
894 GET_COLORMASK_BIT(save->ColorMask, i, 3));
898 GET_COLORMASK_BIT(save->ColorMask, i, 0),
899 GET_COLORMASK_BIT(save->ColorMask, i, 1),
900 GET_COLORMASK_BIT(save->ColorMask, i, 2),
901 GET_COLORMASK_BIT(save->ColorMask, i, 3));
908 if (ctx->Depth.Test != save->Depth.Test)
909 _mesa_set_enable(ctx, GL_DEPTH_TEST, save->Depth.Test);
910 _mesa_DepthFunc(save->Depth.Func);
911 _mesa_DepthMask(save->Depth.Mask);
915 _mesa_set_enable(ctx, GL_FOG, save->Fog);
919 ctx->Pack = save->Pack;
920 ctx->Unpack = save->Unpack;
924 ctx->Pixel.RedScale = save->RedScale;
925 ctx->Pixel.RedBias = save->RedBias;
926 ctx->Pixel.GreenScale = save->GreenScale;
927 ctx->Pixel.GreenBias = save->GreenBias;
928 ctx->Pixel.BlueScale = save->BlueScale;
929 ctx->Pixel.BlueBias = save->BlueBias;
930 ctx->Pixel.AlphaScale = save->AlphaScale;
931 ctx->Pixel.AlphaBias = save->AlphaBias;
932 ctx->Pixel.MapColorFlag = save->MapColorFlag;
938 _mesa_PolygonMode(GL_FRONT, save->FrontPolygonMode);
939 _mesa_PolygonMode(GL_BACK, save->BackPolygonMode);
940 _mesa_set_enable(ctx, GL_POLYGON_STIPPLE, save->PolygonStipple);
941 _mesa_set_enable(ctx, GL_POLYGON_SMOOTH, save->PolygonSmooth);
942 _mesa_set_enable(ctx, GL_POLYGON_OFFSET_FILL, save->PolygonOffset);
943 _mesa_set_enable(ctx, GL_CULL_FACE, save->PolygonCull);
951 save->Scissor.ScissorArray[i].X,
952 save->Scissor.ScissorArray[i].Y,
953 save->Scissor.ScissorArray[i].Width,
954 save->Scissor.ScissorArray[i].Height);
956 (save->Scissor.EnableFlags >> i) & 1);
965 save->VertexProgramEnabled);
967 save->VertexProgram);
968 _mesa_reference_program(ctx, &save->VertexProgram, NULL);
973 save->FragmentProgramEnabled);
975 save->FragmentProgram);
976 _mesa_reference_program(ctx, &save->FragmentProgram, NULL);
981 save->ATIFragmentShaderEnabled);
992 _mesa_use_program(ctx, i, NULL, save->Program[i], &ctx->Shader);
996 if (save->Program[i] != NULL)
999 _mesa_reference_program(ctx, &save->Program[i], NULL);
1003 save->ActiveShader);
1004 _mesa_reference_shader_program(ctx, &save->ActiveShader, NULL);
1017 if (save->Pipeline) {
1018 _mesa_bind_pipeline(ctx, save->Pipeline);
1020 _mesa_reference_pipeline_object(ctx, &save->Pipeline, NULL);
1027 const struct gl_stencil_attrib *stencil = &save->Stencil;
1063 _mesa_TexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, save->EnvMode);
1067 if (ctx->Texture.Unit[0].CurrentTex[tgt] != save->CurrentTexture[tgt]) {
1070 save->CurrentTexture[tgt]);
1072 _mesa_reference_texobj(&save->CurrentTexture[tgt], NULL);
1077 if (ctx->Texture.FixedFuncUnit[u].Enabled != save->TexEnabled[u]) {
1079 ctx->Texture.FixedFuncUnit[u].Enabled = save->TexEnabled[u];
1082 if (ctx->Texture.FixedFuncUnit[u].TexGenEnabled != save->TexGenEnabled[u]) {
1084 ctx->Texture.FixedFuncUnit[u].TexGenEnabled = save->TexGenEnabled[u];
1089 _mesa_ActiveTexture(GL_TEXTURE0 + save->ActiveUnit);
1096 _mesa_LoadMatrixf(save->TextureMatrix);
1100 _mesa_LoadMatrixf(save->ModelviewMatrix);
1103 _mesa_LoadMatrixf(save->ProjectionMatrix);
1105 _mesa_MatrixMode(save->MatrixMode);
1108 _mesa_ClipControl(save->ClipOrigin, save->ClipDepthMode);
1112 GLbitfield mask = save->ClipPlanesEnabled;
1121 _mesa_BindVertexArray(save->VAO->Name);
1122 _mesa_reference_vao(ctx, &save->VAO, NULL);
1126 if (save->ViewportX != ctx->ViewportArray[0].X ||
1127 save->ViewportY != ctx->ViewportArray[0].Y ||
1128 save->ViewportW != ctx->ViewportArray[0].Width ||
1129 save->ViewportH != ctx->ViewportArray[0].Height) {
1130 _mesa_set_viewport(ctx, 0, save->ViewportX, save->ViewportY,
1131 save->ViewportW, save->ViewportH);
1133 _mesa_set_depth_range(ctx, 0, save->DepthNear, save->DepthFar);
1138 _mesa_ClampColor(GL_CLAMP_FRAGMENT_COLOR, save->ClampFragmentColor);
1143 _mesa_ClampColor(GL_CLAMP_VERTEX_COLOR, save->ClampVertexColor);
1147 if (save->CondRenderQuery)
1148 _mesa_BeginConditionalRender(save->CondRenderQuery->Id,
1149 save->CondRenderMode);
1153 if (save->RenderMode == GL_SELECT) {
1155 ctx->Select = save->Select;
1156 } else if (save->RenderMode == GL_FEEDBACK) {
1158 ctx->Feedback = save->Feedback;
1164 struct gl_multisample_attrib *save_ms = &save->Multisample;
1190 if (ctx->Color.sRGBEnabled != save->sRGBEnabled)
1191 _mesa_set_framebuffer_srgb(ctx, save->sRGBEnabled);
1195 if (save->Lighting) {
1198 if (save->RasterDiscard) {
1201 if (save->TransformFeedbackNeedsResume)
1204 _mesa_bind_framebuffers(ctx, save->DrawBuffer, save->ReadBuffer);
1205 _mesa_reference_framebuffer(&save->DrawBuffer, NULL);
1206 _mesa_reference_framebuffer(&save->ReadBuffer, NULL);
1210 save->ColorDrawBuffers, NULL);
1215 ctx->API = save->API;
1216 ctx->Extensions.Version = save->ExtensionsVersion;
3189 /* save texture object state */