Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
f62990a8
Kaydet (Commit)
f62990a8
authored
Kas 20, 2015
tarafından
Emmanuel Gil Peyrot
Kaydeden (comit)
Tomaž Vajngerl
Kas 20, 2015
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
slideshow: Reimplement both Fade transitions in shaders
Change-Id: I94187b9316a206578bb738411053afe070703f09
üst
1f91c05c
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
108 additions
and
62 deletions
+108
-62
Package_opengl.mk
slideshow/Package_opengl.mk
+2
-0
fadeBlackFragmentShader.glsl
slideshow/opengl/fadeBlackFragmentShader.glsl
+50
-0
fadeFragmentShader.glsl
slideshow/opengl/fadeFragmentShader.glsl
+42
-0
OGLTrans_TransitionImpl.cxx
...ource/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx
+14
-62
No files found.
slideshow/Package_opengl.mk
Dosyayı görüntüle @
f62990a8
...
...
@@ -13,6 +13,8 @@ $(eval $(call gb_Package_add_files,slideshow_opengl_shader,$(LIBO_ETC_FOLDER)/op
basicVertexShader.glsl \
basicFragmentShader.glsl \
dissolveFragmentShader.glsl \
fadeBlackFragmentShader.glsl \
fadeFragmentShader.glsl \
staticFragmentShader.glsl \
vortexFragmentShader.glsl \
vortexVertexShader.glsl \
...
...
slideshow/opengl/fadeBlackFragmentShader.glsl
0 → 100644
Dosyayı görüntüle @
f62990a8
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2015 by Collabora, Ltd.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#version 120
uniform
sampler2D
leavingSlideTexture
;
uniform
sampler2D
enteringSlideTexture
;
uniform
float
time
;
varying
vec2
v_texturePosition
;
void
main
()
{
vec4
black
=
vec4
(
0
.
0
,
0
.
0
,
0
.
0
,
1
.
0
);
vec4
texel
;
float
amount
;
if
(
time
<
0
.
5
)
{
texel
=
texture2D
(
leavingSlideTexture
,
v_texturePosition
);
amount
=
time
*
2
;
}
else
{
texel
=
texture2D
(
enteringSlideTexture
,
v_texturePosition
);
amount
=
(
1
.
0
-
time
)
*
2
;
}
gl_FragColor
=
mix
(
texel
,
black
,
amount
);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
slideshow/opengl/fadeFragmentShader.glsl
0 → 100644
Dosyayı görüntüle @
f62990a8
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2015 by Collabora, Ltd.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#version 120
uniform
sampler2D
leavingSlideTexture
;
uniform
sampler2D
enteringSlideTexture
;
uniform
float
time
;
varying
vec2
v_texturePosition
;
void
main
()
{
vec4
leavingFragment
=
texture2D
(
leavingSlideTexture
,
v_texturePosition
);
vec4
enteringFragment
=
texture2D
(
enteringSlideTexture
,
v_texturePosition
);
gl_FragColor
=
mix
(
leavingFragment
,
enteringFragment
,
time
);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx
Dosyayı görüntüle @
f62990a8
...
...
@@ -1367,51 +1367,22 @@ std::shared_ptr<OGLTransitionImpl> makeVenetianBlinds( bool vertical, int parts
namespace
{
class
FadeSmoothlyTransition
:
public
S
imple
Transition
class
FadeSmoothlyTransition
:
public
S
hader
Transition
{
public
:
FadeSmoothlyTransition
(
const
TransitionScene
&
rScene
,
const
TransitionSettings
&
rSettings
)
:
S
imple
Transition
(
rScene
,
rSettings
)
:
S
hader
Transition
(
rScene
,
rSettings
)
{}
private
:
virtual
void
displaySlides_
(
double
nTime
,
sal_Int32
glLeavingSlideTex
,
sal_Int32
glEnteringSlideTex
,
double
SlideWidthScale
,
double
SlideHeightScale
)
override
;
virtual
GLuint
makeShader
()
const
override
;
virtual
void
impl_prepareTransition
()
override
{}
virtual
void
impl_finishTransition
()
override
{}
};
void
FadeSmoothlyTransition
::
displaySlides_
(
double
nTime
,
sal_Int32
glLeavingSlideTex
,
sal_Int32
glEnteringSlideTex
,
double
SlideWidthScale
,
double
SlideHeightScale
)
GLuint
FadeSmoothlyTransition
::
makeShader
()
const
{
CHECK_GL_ERROR
();
applyOverallOperations
(
nTime
,
SlideWidthScale
,
SlideHeightScale
);
CHECK_GL_ERROR
();
glDisable
(
GL_DEPTH_TEST
);
CHECK_GL_ERROR
();
displaySlide
(
nTime
,
glLeavingSlideTex
,
getScene
().
getLeavingSlide
(),
SlideWidthScale
,
SlideHeightScale
);
CHECK_GL_ERROR
();
CHECK_GL_ERROR
();
glDisable
(
GL_LIGHTING
);
CHECK_GL_ERROR
();
glEnable
(
GL_BLEND
);
CHECK_GL_ERROR
();
glBlendFunc
(
GL_SRC_ALPHA
,
GL_ONE_MINUS_SRC_ALPHA
);
CHECK_GL_ERROR
();
glTexEnvi
(
GL_TEXTURE_ENV
,
GL_TEXTURE_ENV_MODE
,
GL_MODULATE
);
CHECK_GL_ERROR
();
glColor4f
(
1
,
1
,
1
,
nTime
);
CHECK_GL_ERROR
();
displaySlide
(
nTime
,
glEnteringSlideTex
,
getScene
().
getEnteringSlide
(),
SlideWidthScale
,
SlideHeightScale
);
CHECK_GL_ERROR
();
glDisable
(
GL_BLEND
);
CHECK_GL_ERROR
();
glTexEnvi
(
GL_TEXTURE_ENV
,
GL_TEXTURE_ENV_MODE
,
GL_REPLACE
);
CHECK_GL_ERROR
();
glEnable
(
GL_LIGHTING
);
CHECK_GL_ERROR
();
glEnable
(
GL_DEPTH_TEST
);
CHECK_GL_ERROR
();
return
OpenGLHelper
::
LoadShaders
(
"basicVertexShader"
,
"fadeFragmentShader"
);
}
std
::
shared_ptr
<
OGLTransitionImpl
>
...
...
@@ -1448,41 +1419,22 @@ std::shared_ptr<OGLTransitionImpl> makeFadeSmoothly()
namespace
{
class
FadeThroughBlackTransition
:
public
S
imple
Transition
class
FadeThroughBlackTransition
:
public
S
hader
Transition
{
public
:
FadeThroughBlackTransition
(
const
TransitionScene
&
rScene
,
const
TransitionSettings
&
rSettings
)
:
S
imple
Transition
(
rScene
,
rSettings
)
:
S
hader
Transition
(
rScene
,
rSettings
)
{}
private
:
virtual
void
displaySlides_
(
double
nTime
,
sal_Int32
glLeavingSlideTex
,
sal_Int32
glEnteringSlideTex
,
double
SlideWidthScale
,
double
SlideHeightScale
)
override
;
virtual
GLuint
makeShader
()
const
override
;
virtual
void
impl_prepareTransition
()
override
{}
virtual
void
impl_finishTransition
()
override
{}
};
void
FadeThroughBlackTransition
::
displaySlides_
(
double
nTime
,
sal_Int32
glLeavingSlideTex
,
sal_Int32
glEnteringSlideTex
,
double
SlideWidthScale
,
double
SlideHeightScale
)
GLuint
FadeThroughBlackTransition
::
makeShader
()
const
{
CHECK_GL_ERROR
();
applyOverallOperations
(
nTime
,
SlideWidthScale
,
SlideHeightScale
);
glDisable
(
GL_DEPTH_TEST
);
glDisable
(
GL_LIGHTING
);
glEnable
(
GL_BLEND
);
glBlendFunc
(
GL_SRC_ALPHA
,
GL_ONE_MINUS_SRC_ALPHA
);
glTexEnvi
(
GL_TEXTURE_ENV
,
GL_TEXTURE_ENV_MODE
,
GL_MODULATE
);
if
(
nTime
<
0.5
)
{
glColor4f
(
1
,
1
,
1
,
1
-
nTime
*
2
);
displaySlide
(
nTime
,
glLeavingSlideTex
,
getScene
().
getLeavingSlide
(),
SlideWidthScale
,
SlideHeightScale
);
}
else
{
glColor4f
(
1
,
1
,
1
,
(
nTime
-
0.5
)
*
2
);
displaySlide
(
nTime
,
glEnteringSlideTex
,
getScene
().
getEnteringSlide
(),
SlideWidthScale
,
SlideHeightScale
);
}
glDisable
(
GL_BLEND
);
glTexEnvi
(
GL_TEXTURE_ENV
,
GL_TEXTURE_ENV_MODE
,
GL_REPLACE
);
glEnable
(
GL_LIGHTING
);
glEnable
(
GL_DEPTH_TEST
);
CHECK_GL_ERROR
();
return
OpenGLHelper
::
LoadShaders
(
"basicVertexShader"
,
"fadeBlackFragmentShader"
);
}
std
::
shared_ptr
<
OGLTransitionImpl
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment