Mercurial > mplayer.hg
comparison libvo/vo_gl.c @ 28065:aec8703ff07f
Avoid one more duplicated logic.
author | reimar |
---|---|
date | Fri, 05 Dec 2008 20:56:49 +0000 |
parents | 4d76c7e31760 |
children | 7511f7328d93 |
comparison
equal
deleted
inserted
replaced
28064:4d76c7e31760 | 28065:aec8703ff07f |
---|---|
679 } | 679 } |
680 return 0; | 680 return 0; |
681 } | 681 } |
682 | 682 |
683 static uint32_t get_image(mp_image_t *mpi) { | 683 static uint32_t get_image(mp_image_t *mpi) { |
684 int needed_size; | |
684 if (!GenBuffers || !BindBuffer || !BufferData || !MapBuffer) { | 685 if (!GenBuffers || !BindBuffer || !BufferData || !MapBuffer) { |
685 if (!err_shown) | 686 if (!err_shown) |
686 mp_msg(MSGT_VO, MSGL_ERR, "[gl] extensions missing for dr\n" | 687 mp_msg(MSGT_VO, MSGL_ERR, "[gl] extensions missing for dr\n" |
687 "Expect a _major_ speed penalty\n"); | 688 "Expect a _major_ speed penalty\n"); |
688 err_shown = 1; | 689 err_shown = 1; |
695 } | 696 } |
696 if (!gl_buffer) | 697 if (!gl_buffer) |
697 GenBuffers(1, &gl_buffer); | 698 GenBuffers(1, &gl_buffer); |
698 BindBuffer(GL_PIXEL_UNPACK_BUFFER, gl_buffer); | 699 BindBuffer(GL_PIXEL_UNPACK_BUFFER, gl_buffer); |
699 mpi->stride[0] = mpi->width * mpi->bpp / 8; | 700 mpi->stride[0] = mpi->width * mpi->bpp / 8; |
700 if (mpi->stride[0] * mpi->height > gl_buffersize) { | 701 needed_size = mpi->stride[0] * mpi->height; |
701 gl_buffersize = mpi->stride[0] * mpi->height; | 702 if (needed_size > gl_buffersize) { |
703 gl_buffersize = needed_size; | |
702 BufferData(GL_PIXEL_UNPACK_BUFFER, gl_buffersize, | 704 BufferData(GL_PIXEL_UNPACK_BUFFER, gl_buffersize, |
703 NULL, GL_DYNAMIC_DRAW); | 705 NULL, GL_DYNAMIC_DRAW); |
704 } | 706 } |
705 if (!gl_bufferptr) | 707 if (!gl_bufferptr) |
706 gl_bufferptr = MapBuffer(GL_PIXEL_UNPACK_BUFFER, GL_WRITE_ONLY); | 708 gl_bufferptr = MapBuffer(GL_PIXEL_UNPACK_BUFFER, GL_WRITE_ONLY); |