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
2bbcf97e
Kaydet (Commit)
2bbcf97e
authored
May 21, 2014
tarafından
Markus Mohrhard
Kaydeden (comit)
Markus Mohrhard
May 21, 2014
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
fix my issues with the offscreen rendering
Change-Id: I4a2ed8a20890119220d63a6768f13365a7b5f97d
üst
b8e8c9c4
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
26 additions
and
28 deletions
+26
-28
GL3DBarChart.cxx
chart2/source/view/charttypes/GL3DBarChart.cxx
+2
-2
GL3DRenderer.hxx
chart2/source/view/inc/GL3DRenderer.hxx
+2
-2
GL3DRenderer.cxx
chart2/source/view/main/GL3DRenderer.cxx
+6
-3
OpenGLHelper.hxx
include/vcl/opengl/OpenGLHelper.hxx
+2
-2
OpenGLHelper.cxx
vcl/source/opengl/OpenGLHelper.cxx
+14
-19
No files found.
chart2/source/view/charttypes/GL3DBarChart.cxx
Dosyayı görüntüle @
2bbcf97e
...
...
@@ -221,11 +221,11 @@ void GL3DBarChart::clickedAt(const Point& rPos)
{
sal_uInt32
nId
=
1
;
{
PickingModeSetter
(
mpRenderer
.
get
());
PickingModeSetter
aPickingModeSetter
(
mpRenderer
.
get
());
render
();
nId
=
mpRenderer
->
GetPixelColorFromPoint
(
rPos
.
X
(),
rPos
.
Y
());
}
if
(
mpCamera
)
if
(
mpCamera
&&
nId
!=
COL_WHITE
)
mpCamera
->
zoom
(
nId
);
}
...
...
chart2/source/view/inc/GL3DRenderer.hxx
Dosyayı görüntüle @
2bbcf97e
...
...
@@ -366,8 +366,8 @@ private:
SceneBox
m_SenceBox
;
GLuint
mnPickingFbo
;
GLuint
mnPickingRbo
;
GLuint
mnPicking
Texture
;
GLuint
mnPickingRbo
Depth
;
GLuint
mnPicking
RboColor
;
};
}
...
...
chart2/source/view/main/GL3DRenderer.cxx
Dosyayı görüntüle @
2bbcf97e
...
...
@@ -112,8 +112,8 @@ OpenGL3DRenderer::~OpenGL3DRenderer()
glDeleteBuffers
(
1
,
&
m_VertexBuffer
);
glDeleteFramebuffers
(
1
,
&
mnPickingFbo
);
glDeleteRenderbuffers
(
1
,
&
mnPickingRbo
);
glDelete
Textures
(
1
,
&
mnPickingTexture
);
glDeleteRenderbuffers
(
1
,
&
mnPickingRbo
Depth
);
glDelete
Renderbuffers
(
1
,
&
mnPickingRboColor
);
}
void
OpenGL3DRenderer
::
ShaderResources
::
LoadShaders
()
...
...
@@ -253,7 +253,7 @@ void OpenGL3DRenderer::init()
glBufferData
(
GL_ARRAY_BUFFER
,
sizeof
(
squareVertices
),
squareVertices
,
GL_STATIC_DRAW
);
glBindBuffer
(
GL_ARRAY_BUFFER
,
0
);
OpenGLHelper
::
createFramebuffer
(
m_iWidth
,
m_iHeight
,
mnPickingFbo
,
mnPickingRbo
,
mnPickingTexture
);
OpenGLHelper
::
createFramebuffer
(
m_iWidth
,
m_iHeight
,
mnPickingFbo
,
mnPickingRbo
Depth
,
mnPickingRboColor
);
CHECK_GL_ERROR
();
Init3DUniformBlock
();
...
...
@@ -1601,6 +1601,9 @@ sal_uInt32 OpenGL3DRenderer::GetPixelColorFromPoint(long nX, long nY)
boost
::
scoped_array
<
sal_uInt8
>
buf
(
new
sal_uInt8
[
4
]);
glReadPixels
(
nX
,
nY
,
1
,
1
,
GL_BGRA
,
GL_UNSIGNED_BYTE
,
buf
.
get
());
Color
aColor
(
buf
[
3
],
buf
[
2
],
buf
[
1
],
buf
[
0
]);
static
sal_Int32
i
=
0
;
OUString
aFileName
=
OUString
(
"/home/moggi/Documents/work/shader"
)
+
OUString
::
number
(
i
)
+
".png"
;
OpenGLHelper
::
renderToFile
(
m_iWidth
,
m_iHeight
,
aFileName
);
return
aColor
.
GetColor
();
}
...
...
include/vcl/opengl/OpenGLHelper.hxx
Dosyayı görüntüle @
2bbcf97e
...
...
@@ -32,10 +32,10 @@ public:
/**
* The caller is responsible for deleting the buffer objects identified by
* nFramebufferId, nRenderbuffer
Id and nTexturebuffe
rId
* nFramebufferId, nRenderbuffer
DepthId and nRenderbufferColo
rId
*/
static
void
createFramebuffer
(
long
nWidth
,
long
nHeight
,
GLuint
&
nFramebufferId
,
GLuint
&
nRenderbuffer
Id
,
GLuint
&
nTexturebuffe
rId
);
GLuint
&
nFramebufferId
,
GLuint
&
nRenderbuffer
TextId
,
GLuint
&
nRenderbufferColo
rId
);
};
VCLOPENGL_DLLPUBLIC
std
::
ostream
&
operator
<<
(
std
::
ostream
&
rStrm
,
const
glm
::
mat4
&
rMatrix
);
...
...
vcl/source/opengl/OpenGLHelper.cxx
Dosyayı görüntüle @
2bbcf97e
...
...
@@ -269,36 +269,31 @@ std::ostream& operator<<(std::ostream& rStrm, const glm::mat4& rMatrix)
}
void
OpenGLHelper
::
createFramebuffer
(
long
nWidth
,
long
nHeight
,
GLuint
&
nFramebufferId
,
GLuint
&
nRenderbuffer
Id
,
GLuint
&
nTexturebuffe
rId
)
GLuint
&
nFramebufferId
,
GLuint
&
nRenderbuffer
DepthId
,
GLuint
&
nRenderbufferColo
rId
)
{
// create a renderbuffer
glGenRenderbuffers
(
1
,
&
nRenderbufferId
);
glBindRenderbuffer
(
GL_RENDERBUFFER
,
nRenderbufferId
);
// create a renderbuffer
for depth attachment
glGenRenderbuffers
(
1
,
&
nRenderbuffer
Depth
Id
);
glBindRenderbuffer
(
GL_RENDERBUFFER
,
nRenderbuffer
Depth
Id
);
glRenderbufferStorage
(
GL_RENDERBUFFER
,
GL_DEPTH_COMPONENT
,
nWidth
,
nHeight
);
glBindRenderbuffer
(
GL_RENDERBUFFER
,
0
);
// create a texture
glGenTextures
(
1
,
&
nTexturebufferId
);
glBindTexture
(
GL_TEXTURE_2D
,
nTexturebufferId
);
glTexParameteri
(
GL_TEXTURE_2D
,
GL_TEXTURE_WRAP_S
,
GL_CLAMP
);
glTexParameteri
(
GL_TEXTURE_2D
,
GL_TEXTURE_WRAP_T
,
GL_CLAMP
);
glTexParameteri
(
GL_TEXTURE_2D
,
GL_TEXTURE_MIN_FILTER
,
GL_NEAREST
);
glTexParameteri
(
GL_TEXTURE_2D
,
GL_TEXTURE_MAG_FILTER
,
GL_NEAREST
);
glTexImage2D
(
GL_TEXTURE_2D
,
0
,
GL_RGBA
,
nWidth
,
nHeight
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
NULL
);
glBindTexture
(
GL_TEXTURE_2D
,
0
);
// create a renderbuffer for color attachment
glGenRenderbuffers
(
1
,
&
nRenderbufferColorId
);
glBindRenderbuffer
(
GL_RENDERBUFFER
,
nRenderbufferColorId
);
glRenderbufferStorage
(
GL_RENDERBUFFER
,
GL_RGBA8
,
nWidth
,
nHeight
);
glBindRenderbuffer
(
GL_RENDERBUFFER
,
0
);
// create a framebuffer object and attach renderbuffer and texture
glGenFramebuffers
(
1
,
&
nFramebufferId
);
glCheckFramebufferStatus
(
GL_FRAMEBUFFER
);
glBindFramebuffer
(
GL_FRAMEBUFFER
,
nFramebufferId
);
glBindTexture
(
GL_TEXTURE_2D
,
nTexturebufferId
);
// attach a texture to FBO color attachement point
glFramebuffer
Texture2D
(
GL_FRAMEBUFFER
,
GL_COLOR_ATTACHMENT0
,
GL_TEXTURE_2D
,
nTexturebufferId
,
0
);
// attach a renderbuffer to FBO color attachement point
glBindRenderbuffer
(
GL_RENDERBUFFER
,
nRenderbufferColorId
);
glFramebuffer
Renderbuffer
(
GL_FRAMEBUFFER
,
GL_COLOR_ATTACHMENT0
,
GL_RENDERBUFFER
,
nRenderbufferColorId
);
glCheckFramebufferStatus
(
GL_FRAMEBUFFER
);
glBindTexture
(
GL_TEXTURE_2D
,
0
);
// attach a renderbuffer to depth attachment point
glBindRenderbuffer
(
GL_RENDERBUFFER
,
nRenderbufferId
);
glFramebufferRenderbuffer
(
GL_FRAMEBUFFER
,
GL_DEPTH_ATTACHMENT
,
GL_RENDERBUFFER
,
nRenderbufferId
);
glBindRenderbuffer
(
GL_RENDERBUFFER
,
nRenderbuffer
Depth
Id
);
glFramebufferRenderbuffer
(
GL_FRAMEBUFFER
,
GL_DEPTH_ATTACHMENT
,
GL_RENDERBUFFER
,
nRenderbuffer
Depth
Id
);
glCheckFramebufferStatus
(
GL_FRAMEBUFFER
);
glBindRenderbuffer
(
GL_RENDERBUFFER
,
0
);
glBindFramebuffer
(
GL_FRAMEBUFFER
,
0
);
...
...
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