| Index: source/libvpx/vp8/decoder/xprintf.c
|
| ===================================================================
|
| --- source/libvpx/vp8/decoder/xprintf.c (revision 60257)
|
| +++ source/libvpx/vp8/decoder/xprintf.c (working copy)
|
| @@ -1,164 +0,0 @@
|
| -/*
|
| - * Copyright (c) 2010 The VP8 project authors. All Rights Reserved.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license
|
| - * that can be found in the LICENSE file in the root of the source
|
| - * tree. An additional intellectual property rights grant can be found
|
| - * in the file PATENTS. All contributing project authors may
|
| - * be found in the AUTHORS file in the root of the source tree.
|
| - */
|
| -
|
| -
|
| -/****************************************************************************
|
| -*
|
| -* Module Title : xprintf.cpp
|
| -*
|
| -* Description : Display a printf style message on the current video frame.
|
| -*
|
| -****************************************************************************/
|
| -
|
| -/****************************************************************************
|
| -* Header Files
|
| -****************************************************************************/
|
| -
|
| -#include <stdio.h>
|
| -#include <stdarg.h>
|
| -#ifdef _WIN32_WCE
|
| -#include <windows.h>
|
| -#endif
|
| -#include "xprintf.h"
|
| -
|
| -/****************************************************************************
|
| - *
|
| - * ROUTINE : xprintf
|
| - *
|
| - * INPUTS : const PB_INSTANCE *ppbi : Pointer to decoder instance.
|
| - * long n_pixel : Offset into buffer to write text.
|
| - * const char *format : Format string for print.
|
| - * ... : Variable length argument list.
|
| - *
|
| - * OUTPUTS : None.
|
| - *
|
| - * RETURNS : int: Size (in bytes) of the formatted text.
|
| - *
|
| - * FUNCTION : Display a printf style message on the current video frame.
|
| - *
|
| - * SPECIAL NOTES : None.
|
| - *
|
| - ****************************************************************************/
|
| -int onyx_xprintf(unsigned char *ppbuffer, long n_pixel, long n_size, long n_stride, const char *format, ...)
|
| -{
|
| - BOOL b_rc;
|
| - va_list arglist;
|
| - HFONT hfont, hfonto;
|
| -
|
| - int rc = 0;
|
| - char sz_formatted[256] = "";
|
| - unsigned char *p_dest = &ppbuffer[n_pixel];
|
| -
|
| -#ifdef _WIN32_WCE
|
| - // Set up temporary bitmap
|
| - HDC hdc_memory = NULL;
|
| - HBITMAP hbm_temp = NULL;
|
| - HBITMAP hbm_orig = NULL;
|
| -
|
| - RECT rect;
|
| -
|
| - // Copy bitmap to video frame
|
| - long x;
|
| - long y;
|
| -
|
| - // Format text
|
| - va_start(arglist, format);
|
| - _vsnprintf(sz_formatted, sizeof(sz_formatted), format, arglist);
|
| - va_end(arglist);
|
| -
|
| - rect.left = 0;
|
| - rect.top = 0;
|
| - rect.right = 8 * strlen(sz_formatted);
|
| - rect.bottom = 8;
|
| -
|
| - hdc_memory = create_compatible_dc(NULL);
|
| -
|
| - if (hdc_memory == NULL)
|
| - goto Exit;
|
| -
|
| - hbm_temp = create_bitmap(rect.right, rect.bottom, 1, 1, NULL);
|
| -
|
| - if (hbm_temp == NULL)
|
| - goto Exit;
|
| -
|
| - hbm_orig = (HBITMAP)(select_object(hdc_memory, hbm_temp));
|
| -
|
| - if (!hbm_orig)
|
| - goto Exit;
|
| -
|
| - // Write text into bitmap
|
| - // font?
|
| - hfont = create_font(8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, VARIABLE_PITCH | FF_SWISS, "");
|
| -
|
| - if (hfont == NULL)
|
| - goto Exit;
|
| -
|
| - hfonto = (HFONT)(select_object(hdc_memory, hbm_temp));
|
| -
|
| - if (!hfonto)
|
| - goto Exit;
|
| -
|
| - select_object(hdc_memory, hfont);
|
| - set_text_color(hdc_memory, 1);
|
| - set_bk_color(hdc_memory, 0);
|
| - set_bk_mode(hdc_memory, TRANSPARENT);
|
| -
|
| - b_rc = bit_blt(hdc_memory, rect.left, rect.top, rect.right, rect.bottom, hdc_memory, rect.left, rect.top, BLACKNESS);
|
| -
|
| - if (!b_rc)
|
| - goto Exit;
|
| -
|
| - b_rc = ext_text_out(hdc_memory, 0, 0, ETO_CLIPPED, &rect, sz_formatted, strlen(sz_formatted), NULL);
|
| -
|
| - if (!b_rc)
|
| - goto Exit;
|
| -
|
| - for (y = rect.top; y < rect.bottom; ++y)
|
| - {
|
| - for (x = rect.left; x < rect.right; ++x)
|
| - {
|
| - if (get_pixel(hdc_memory, x, rect.bottom - 1 - y))
|
| - p_dest[x] = 255;
|
| - }
|
| -
|
| - p_dest += n_stride;
|
| - }
|
| -
|
| - rc = strlen(sz_formatted);
|
| -
|
| -Exit:
|
| -
|
| - if (hbm_temp != NULL)
|
| - {
|
| - if (hbm_orig != NULL)
|
| - {
|
| - select_object(hdc_memory, hbm_orig);
|
| - }
|
| -
|
| - delete_object(hbm_temp);
|
| - }
|
| -
|
| - if (hfont != NULL)
|
| - {
|
| - if (hfonto != NULL)
|
| - select_object(hdc_memory, hfonto);
|
| -
|
| - delete_object(hfont);
|
| - }
|
| -
|
| - if (hdc_memory != NULL)
|
| - delete_dc(hdc_memory);
|
| -
|
| - hdc_memory = 0;
|
| -
|
| -#endif
|
| -
|
| - return rc;
|
| -}
|
|
|