您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ D3D_SetError函数代码示例

51自学网 2021-06-01 20:17:28
  C++
这篇教程C++ D3D_SetError函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中D3D_SetError函数的典型用法代码示例。如果您正苦于以下问题:C++ D3D_SetError函数的具体用法?C++ D3D_SetError怎么用?C++ D3D_SetError使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了D3D_SetError函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: D3D_SetRenderTarget

static intD3D_SetRenderTarget(SDL_Renderer * renderer, SDL_Texture * texture){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    D3D_TextureData *texturedata;    HRESULT result;    D3D_ActivateRenderer(renderer);    /* Release the previous render target if it wasn't the default one */    if (data->currentRenderTarget != NULL) {        IDirect3DSurface9_Release(data->currentRenderTarget);        data->currentRenderTarget = NULL;    }    if (texture == NULL) {        IDirect3DDevice9_SetRenderTarget(data->device, 0, data->defaultRenderTarget);        return 0;    }    texturedata = (D3D_TextureData *) texture->driverdata;    result = IDirect3DTexture9_GetSurfaceLevel(texturedata->texture, 0, &data->currentRenderTarget);    if(FAILED(result)) {        D3D_SetError("GetSurfaceLevel()", result);        return -1;    }    result = IDirect3DDevice9_SetRenderTarget(data->device, 0, data->currentRenderTarget);    if(FAILED(result)) {        D3D_SetError("SetRenderTarget()", result);        return -1;    }    return 0;}
开发者ID:BabyFlower,项目名称:SurveillanceClientOnMobile,代码行数:34,


示例2: D3D_RenderReadPixels

static intD3D_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect,                     Uint32 format, void * pixels, int pitch){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    D3DSURFACE_DESC desc;    LPDIRECT3DSURFACE9 backBuffer;    LPDIRECT3DSURFACE9 surface;    RECT d3drect;    D3DLOCKED_RECT locked;    HRESULT result;    result = IDirect3DDevice9_GetBackBuffer(data->device, 0, 0, D3DBACKBUFFER_TYPE_MONO, &backBuffer);    if (FAILED(result)) {        return D3D_SetError("GetBackBuffer()", result);    }    result = IDirect3DSurface9_GetDesc(backBuffer, &desc);    if (FAILED(result)) {        IDirect3DSurface9_Release(backBuffer);        return D3D_SetError("GetDesc()", result);    }    result = IDirect3DDevice9_CreateOffscreenPlainSurface(data->device, desc.Width, desc.Height, desc.Format, D3DPOOL_SYSTEMMEM, &surface, NULL);    if (FAILED(result)) {        IDirect3DSurface9_Release(backBuffer);        return D3D_SetError("CreateOffscreenPlainSurface()", result);    }    result = IDirect3DDevice9_GetRenderTargetData(data->device, backBuffer, surface);    if (FAILED(result)) {        IDirect3DSurface9_Release(surface);        IDirect3DSurface9_Release(backBuffer);        return D3D_SetError("GetRenderTargetData()", result);    }    d3drect.left = rect->x;    d3drect.right = rect->x + rect->w;    d3drect.top = rect->y;    d3drect.bottom = rect->y + rect->h;    result = IDirect3DSurface9_LockRect(surface, &locked, &d3drect, D3DLOCK_READONLY);    if (FAILED(result)) {        IDirect3DSurface9_Release(surface);        IDirect3DSurface9_Release(backBuffer);        return D3D_SetError("LockRect()", result);    }    SDL_ConvertPixels(rect->w, rect->h,                      D3DFMTToPixelFormat(desc.Format), locked.pBits, locked.Pitch,                      format, pixels, pitch);    IDirect3DSurface9_UnlockRect(surface);    IDirect3DSurface9_Release(surface);    IDirect3DSurface9_Release(backBuffer);    return 0;}
开发者ID:zester,项目名称:Mezzanine,代码行数:59,


示例3: D3D_RenderDrawLines

static intD3D_RenderDrawLines(SDL_Renderer * renderer, const SDL_Point * points,                    int count){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    DWORD color;    Vertex *vertices;    int i;    HRESULT result;    if (data->beginScene) {        IDirect3DDevice9_BeginScene(data->device);        data->beginScene = SDL_FALSE;    }    D3D_SetBlendMode(data, renderer->blendMode);    result =        IDirect3DDevice9_SetTexture(data->device, 0,                                    (IDirect3DBaseTexture9 *) 0);    if (FAILED(result)) {        D3D_SetError("SetTexture()", result);        return -1;    }    color = D3DCOLOR_ARGB(renderer->a, renderer->r, renderer->g, renderer->b);    vertices = SDL_stack_alloc(Vertex, count);    for (i = 0; i < count; ++i) {        vertices[i].x = (float) points[i].x;        vertices[i].y = (float) points[i].y;        vertices[i].z = 0.0f;        vertices[i].rhw = 1.0f;        vertices[i].color = color;        vertices[i].u = 0.0f;        vertices[i].v = 0.0f;    }    result =        IDirect3DDevice9_DrawPrimitiveUP(data->device, D3DPT_LINESTRIP, count-1,                                         vertices, sizeof(*vertices));    /* DirectX 9 has the same line rasterization semantics as GDI,       so we need to close the endpoint of the line */    if (points[0].x != points[count-1].x || points[0].y != points[count-1].y) {        vertices[0].x = (float) points[count-1].x;        vertices[0].y = (float) points[count-1].y;        result = IDirect3DDevice9_DrawPrimitiveUP(data->device, D3DPT_POINTLIST, 1, vertices, sizeof(*vertices));    }    SDL_stack_free(vertices);    if (FAILED(result)) {        D3D_SetError("DrawPrimitiveUP()", result);        return -1;    }    return 0;}
开发者ID:Alocaly,项目名称:dolphin-player.nextgen,代码行数:56,


示例4: D3D_RenderLine

static intD3D_RenderLine(SDL_Renderer * renderer, int x1, int y1, int x2, int y2){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    DWORD color;    Vertex vertices[2];    HRESULT result;    if (data->beginScene) {        IDirect3DDevice9_BeginScene(data->device);        data->beginScene = SDL_FALSE;    }    color = D3DCOLOR_ARGB(renderer->a, renderer->r, renderer->g, renderer->b);    vertices[0].x = (float) x1 - 0.5f;    vertices[0].y = (float) y1 - 0.5f;    vertices[0].z = 0.0f;    vertices[0].rhw = 1.0f;    vertices[0].color = color;    vertices[0].u = 0.0f;    vertices[0].v = 0.0f;    vertices[1].x = (float) x2 - 0.5f;    vertices[1].y = (float) y2 - 0.5f;    vertices[1].z = 0.0f;    vertices[1].rhw = 1.0f;    vertices[1].color = color;    vertices[1].u = 0.0f;    vertices[1].v = 0.0f;    D3D_SetBlendMode(data, renderer->blendMode);    result =        IDirect3DDevice9_SetTexture(data->device, 0,                                    (IDirect3DBaseTexture9 *) 0);    if (FAILED(result)) {        D3D_SetError("SetTexture()", result);        return -1;    }    result =        IDirect3DDevice9_DrawPrimitiveUP(data->device, D3DPT_LINELIST, 1,                                         vertices, sizeof(*vertices));    if (FAILED(result)) {        D3D_SetError("DrawPrimitiveUP()", result);        return -1;    }    return 0;}
开发者ID:dodikk,项目名称:iWesnoth,代码行数:49,


示例5: D3D_UpdateClipRect

static intD3D_UpdateClipRect(SDL_Renderer * renderer){    const SDL_Rect *rect = &renderer->clip_rect;    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    RECT r;    HRESULT result;    if (!SDL_RectEmpty(rect)) {        IDirect3DDevice9_SetRenderState(data->device, D3DRS_SCISSORTESTENABLE, TRUE);        r.left = rect->x;        r.top = rect->y;        r.right = rect->w + rect->w;        r.bottom = rect->y + rect->h;        result = IDirect3DDevice9_SetScissorRect(data->device, &r);        if (result != D3D_OK) {            D3D_SetError("SetScissor()", result);            return -1;        }    } else {        IDirect3DDevice9_SetRenderState(data->device, D3DRS_SCISSORTESTENABLE, FALSE);    }    return 0;}
开发者ID:zester,项目名称:Mezzanine,代码行数:25,


示例6: D3D_LockTexture

static intD3D_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture,                const SDL_Rect * rect, int markDirty, void **pixels,                int *pitch){    D3D_TextureData *data = (D3D_TextureData *) texture->driverdata;    if (data->yuv) {        return SDL_SW_LockYUVTexture(data->yuv, rect, markDirty, pixels,                                     pitch);    } else {        RECT d3drect;        D3DLOCKED_RECT locked;        HRESULT result;        d3drect.left = rect->x;        d3drect.right = rect->x + rect->w;        d3drect.top = rect->y;        d3drect.bottom = rect->y + rect->h;        result =            IDirect3DTexture9_LockRect(data->texture, 0, &locked, &d3drect,                                       markDirty ? 0 :                                       D3DLOCK_NO_DIRTY_UPDATE);        if (FAILED(result)) {            D3D_SetError("LockRect()", result);            return -1;        }        *pixels = locked.pBits;        *pitch = locked.Pitch;        return 0;    }}
开发者ID:Alocaly,项目名称:dolphin-player.nextgen,代码行数:33,


示例7: D3D_Reset

static intD3D_Reset(SDL_Renderer * renderer){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    HRESULT result;    /* Release the default render target before reset */    if (data->defaultRenderTarget) {        IDirect3DSurface9_Release(data->defaultRenderTarget);        data->defaultRenderTarget = NULL;    }    result = IDirect3DDevice9_Reset(data->device, &data->pparams);    if (FAILED(result)) {        if (result == D3DERR_DEVICELOST) {            /* Don't worry about it, we'll reset later... */            return 0;        } else {            return D3D_SetError("Reset()", result);        }    }    IDirect3DDevice9_SetVertexShader(data->device, NULL);    IDirect3DDevice9_SetFVF(data->device,                            D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1);    IDirect3DDevice9_SetRenderState(data->device, D3DRS_CULLMODE,                                    D3DCULL_NONE);    IDirect3DDevice9_SetRenderState(data->device, D3DRS_LIGHTING, FALSE);    IDirect3DDevice9_GetRenderTarget(data->device, 0, &data->defaultRenderTarget);    return 0;}
开发者ID:zester,项目名称:Mezzanine,代码行数:30,


示例8: D3D_RenderDrawPoints

static intD3D_RenderDrawPoints(SDL_Renderer * renderer, const SDL_Point * points,                     int count){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    DWORD color;    Vertex *vertices;    int i;    HRESULT result;    if (data->beginScene) {        IDirect3DDevice9_BeginScene(data->device);        data->beginScene = SDL_FALSE;    }    D3D_SetBlendMode(data, renderer->blendMode);    result =        IDirect3DDevice9_SetTexture(data->device, 0,                                    (IDirect3DBaseTexture9 *) 0);    if (FAILED(result)) {        D3D_SetError("SetTexture()", result);        return -1;    }    color = D3DCOLOR_ARGB(renderer->a, renderer->r, renderer->g, renderer->b);    vertices = SDL_stack_alloc(Vertex, count);    for (i = 0; i < count; ++i) {        vertices[i].x = (float) points[i].x;        vertices[i].y = (float) points[i].y;        vertices[i].z = 0.0f;        vertices[i].rhw = 1.0f;        vertices[i].color = color;        vertices[i].u = 0.0f;        vertices[i].v = 0.0f;    }    result =        IDirect3DDevice9_DrawPrimitiveUP(data->device, D3DPT_POINTLIST, count,                                         vertices, sizeof(*vertices));    SDL_stack_free(vertices);    if (FAILED(result)) {        D3D_SetError("DrawPrimitiveUP()", result);        return -1;    }    return 0;}
开发者ID:Alocaly,项目名称:dolphin-player.nextgen,代码行数:47,


示例9: D3D_UpdateTexture

static intD3D_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture,                  const SDL_Rect * rect, const void *pixels, int pitch){    D3D_TextureData *data = (D3D_TextureData *) texture->driverdata;    D3D_RenderData *renderdata = (D3D_RenderData *) renderer->driverdata;    RECT d3drect;    D3DLOCKED_RECT locked;    const Uint8 *src;    Uint8 *dst;    int row, length;    HRESULT result;#ifdef USE_DYNAMIC_TEXTURE    if (texture->access == SDL_TEXTUREACCESS_STREAMING &&        rect->x == 0 && rect->y == 0 &&        rect->w == texture->w && rect->h == texture->h) {        result = IDirect3DTexture9_LockRect(data->texture, 0, &locked, NULL, D3DLOCK_DISCARD);    } else#endif    {        d3drect.left = rect->x;        d3drect.right = rect->x + rect->w;        d3drect.top = rect->y;        d3drect.bottom = rect->y + rect->h;        result = IDirect3DTexture9_LockRect(data->texture, 0, &locked, &d3drect, 0);    }    if (FAILED(result)) {        D3D_SetError("LockRect()", result);        return -1;    }    src = pixels;    dst = locked.pBits;    length = rect->w * SDL_BYTESPERPIXEL(texture->format);    if (length == pitch && length == locked.Pitch) {        SDL_memcpy(dst, src, length*rect->h);    } else {        for (row = 0; row < rect->h; ++row) {            SDL_memcpy(dst, src, length);            src += pitch;            dst += locked.Pitch;        }    }    IDirect3DTexture9_UnlockRect(data->texture, 0);    return 0;}
开发者ID:BabyFlower,项目名称:SurveillanceClientOnMobile,代码行数:49,


示例10: D3D_RenderClear

static intD3D_RenderClear(SDL_Renderer * renderer){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    DWORD color;    HRESULT result;    if (D3D_ActivateRenderer(renderer) < 0) {        return -1;    }    color = D3DCOLOR_ARGB(renderer->a, renderer->r, renderer->g, renderer->b);    /* Don't reset the viewport if we don't have to! */    if (!renderer->viewport.x && !renderer->viewport.y &&        renderer->viewport.w == data->pparams.BackBufferWidth &&        renderer->viewport.h == data->pparams.BackBufferHeight) {        result = IDirect3DDevice9_Clear(data->device, 0, NULL, D3DCLEAR_TARGET, color, 0.0f, 0);    } else {        D3DVIEWPORT9 viewport;        /* Clear is defined to clear the entire render target */        viewport.X = 0;        viewport.Y = 0;        viewport.Width = data->pparams.BackBufferWidth;        viewport.Height = data->pparams.BackBufferHeight;        viewport.MinZ = 0.0f;        viewport.MaxZ = 1.0f;        IDirect3DDevice9_SetViewport(data->device, &viewport);        result = IDirect3DDevice9_Clear(data->device, 0, NULL, D3DCLEAR_TARGET, color, 0.0f, 0);        /* Reset the viewport */        viewport.X = renderer->viewport.x;        viewport.Y = renderer->viewport.y;        viewport.Width = renderer->viewport.w;        viewport.Height = renderer->viewport.h;        viewport.MinZ = 0.0f;        viewport.MaxZ = 1.0f;        IDirect3DDevice9_SetViewport(data->device, &viewport);    }    if (FAILED(result)) {        D3D_SetError("Clear()", result);        return -1;    }    return 0;}
开发者ID:BabyFlower,项目名称:SurveillanceClientOnMobile,代码行数:48,


示例11: D3D_CreateTexture

static intD3D_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture){    D3D_RenderData *renderdata = (D3D_RenderData *) renderer->driverdata;    SDL_Window *window = renderer->window;    SDL_VideoDisplay *display = window->display;    Uint32 display_format = display->current_mode.format;    D3D_TextureData *data;    HRESULT result;    data = (D3D_TextureData *) SDL_calloc(1, sizeof(*data));    if (!data) {        SDL_OutOfMemory();        return -1;    }    texture->driverdata = data;    if (SDL_ISPIXELFORMAT_FOURCC(texture->format) &&        (texture->format != SDL_PIXELFORMAT_YUY2 ||         !D3D_IsTextureFormatAvailable(renderdata->d3d, renderdata->adapter,                                       display_format, texture->format))        && (texture->format != SDL_PIXELFORMAT_YVYU            || !D3D_IsTextureFormatAvailable(renderdata->d3d, renderdata->adapter,                                             display_format, texture->format))) {        data->yuv =            SDL_SW_CreateYUVTexture(texture->format, texture->w, texture->h);        if (!data->yuv) {            return -1;        }        data->format = display->current_mode.format;    } else {        data->format = texture->format;    }    result =        IDirect3DDevice9_CreateTexture(renderdata->device, texture->w,                                       texture->h, 1, 0,                                       PixelFormatToD3DFMT(data->format),                                       D3DPOOL_SDL, &data->texture, NULL);    if (FAILED(result)) {        D3D_SetError("CreateTexture()", result);        return -1;    }    return 0;}
开发者ID:Alocaly,项目名称:dolphin-player.nextgen,代码行数:47,


示例12: D3D_CreateTexture

static intD3D_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture){    D3D_RenderData *renderdata = (D3D_RenderData *) renderer->driverdata;    SDL_Window *window = renderer->window;    D3DFORMAT display_format = renderdata->pparams.BackBufferFormat;    D3D_TextureData *data;    D3DPOOL pool;    DWORD usage;    HRESULT result;    data = (D3D_TextureData *) SDL_calloc(1, sizeof(*data));    if (!data) {        SDL_OutOfMemory();        return -1;    }    data->scaleMode = GetScaleQuality();    texture->driverdata = data;#ifdef USE_DYNAMIC_TEXTURE    if (texture->access == SDL_TEXTUREACCESS_STREAMING) {        pool = D3DPOOL_DEFAULT;        usage = D3DUSAGE_DYNAMIC;    } else#endif    if (texture->access == SDL_TEXTUREACCESS_TARGET) {        /* D3DPOOL_MANAGED does not work with D3DUSAGE_RENDERTARGET */        pool = D3DPOOL_DEFAULT;        usage = D3DUSAGE_RENDERTARGET;    } else {        pool = D3DPOOL_MANAGED;        usage = 0;    }    result =        IDirect3DDevice9_CreateTexture(renderdata->device, texture->w,                                       texture->h, 1, usage,                                       PixelFormatToD3DFMT(texture->format),                                       pool, &data->texture, NULL);    if (FAILED(result)) {        D3D_SetError("CreateTexture()", result);        return -1;    }    return 0;}
开发者ID:BabyFlower,项目名称:SurveillanceClientOnMobile,代码行数:47,


示例13: D3D_ActivateRenderer

static intD3D_ActivateRenderer(SDL_Renderer * renderer){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    HRESULT result;    if (data->updateSize) {        SDL_Window *window = renderer->window;        int w, h;        SDL_GetWindowSize(window, &w, &h);        data->pparams.BackBufferWidth = w;        data->pparams.BackBufferHeight = h;        if (SDL_GetWindowFlags(window) & SDL_WINDOW_FULLSCREEN) {            data->pparams.BackBufferFormat =                PixelFormatToD3DFMT(SDL_GetWindowPixelFormat(window));        } else {            data->pparams.BackBufferFormat = D3DFMT_UNKNOWN;        }        if (D3D_Reset(renderer) < 0) {            return -1;        }        D3D_UpdateViewport(renderer);        data->updateSize = SDL_FALSE;    }    if (data->beginScene) {        result = IDirect3DDevice9_BeginScene(data->device);        if (result == D3DERR_DEVICELOST) {            if (D3D_Reset(renderer) < 0) {                return -1;            }            result = IDirect3DDevice9_BeginScene(data->device);        }        if (FAILED(result)) {            D3D_SetError("BeginScene()", result);            return -1;        }        data->beginScene = SDL_FALSE;    }    return 0;}
开发者ID:BabyFlower,项目名称:SurveillanceClientOnMobile,代码行数:42,


示例14: D3D_LockTexture

static intD3D_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture,                const SDL_Rect * rect, void **pixels, int *pitch){    D3D_TextureData *data = (D3D_TextureData *) texture->driverdata;    RECT d3drect;    D3DLOCKED_RECT locked;    HRESULT result;    d3drect.left = rect->x;    d3drect.right = rect->x + rect->w;    d3drect.top = rect->y;    d3drect.bottom = rect->y + rect->h;    result = IDirect3DTexture9_LockRect(data->texture, 0, &locked, &d3drect, 0);    if (FAILED(result)) {        return D3D_SetError("LockRect()", result);    }    *pixels = locked.pBits;    *pitch = locked.Pitch;    return 0;}
开发者ID:zester,项目名称:Mezzanine,代码行数:22,


示例15: D3D_Reset

static intD3D_Reset(SDL_Renderer * renderer){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    HRESULT result;    result = IDirect3DDevice9_Reset(data->device, &data->pparams);    if (FAILED(result)) {        if (result == D3DERR_DEVICELOST) {            /* Don't worry about it, we'll reset later... */            return 0;        } else {            D3D_SetError("Reset()", result);            return -1;        }    }    IDirect3DDevice9_SetVertexShader(data->device, NULL);    IDirect3DDevice9_SetFVF(data->device,                            D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1);    IDirect3DDevice9_SetRenderState(data->device, D3DRS_CULLMODE,                                    D3DCULL_NONE);    IDirect3DDevice9_SetRenderState(data->device, D3DRS_LIGHTING, FALSE);    return 0;}
开发者ID:Alocaly,项目名称:dolphin-player.nextgen,代码行数:24,


示例16: D3D_RenderPresent

static voidD3D_RenderPresent(SDL_Renderer * renderer){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    HRESULT result;    if (!data->beginScene) {        IDirect3DDevice9_EndScene(data->device);        data->beginScene = SDL_TRUE;    }    result = IDirect3DDevice9_TestCooperativeLevel(data->device);    if (result == D3DERR_DEVICELOST) {        /* We'll reset later */        return;    }    if (result == D3DERR_DEVICENOTRESET) {        D3D_Reset(renderer);    }    result = IDirect3DDevice9_Present(data->device, NULL, NULL, NULL, NULL);    if (FAILED(result)) {        D3D_SetError("Present()", result);    }}
开发者ID:BabyFlower,项目名称:SurveillanceClientOnMobile,代码行数:24,


示例17: D3D_RenderFill

static intD3D_RenderFill(SDL_Renderer * renderer, const SDL_Rect * rect){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    float minx, miny, maxx, maxy;    DWORD color;    Vertex vertices[4];    HRESULT result;    if (data->beginScene) {        IDirect3DDevice9_BeginScene(data->device);        data->beginScene = SDL_FALSE;    }    minx = (float) rect->x - 0.5f;    miny = (float) rect->y - 0.5f;    maxx = (float) rect->x + rect->w - 0.5f;    maxy = (float) rect->y + rect->h - 0.5f;    color = D3DCOLOR_ARGB(renderer->a, renderer->r, renderer->g, renderer->b);    vertices[0].x = minx;    vertices[0].y = miny;    vertices[0].z = 0.0f;    vertices[0].rhw = 1.0f;    vertices[0].color = color;    vertices[0].u = 0.0f;    vertices[0].v = 0.0f;    vertices[1].x = maxx;    vertices[1].y = miny;    vertices[1].z = 0.0f;    vertices[1].rhw = 1.0f;    vertices[1].color = color;    vertices[1].u = 0.0f;    vertices[1].v = 0.0f;    vertices[2].x = maxx;    vertices[2].y = maxy;    vertices[2].z = 0.0f;    vertices[2].rhw = 1.0f;    vertices[2].color = color;    vertices[2].u = 0.0f;    vertices[2].v = 0.0f;    vertices[3].x = minx;    vertices[3].y = maxy;    vertices[3].z = 0.0f;    vertices[3].rhw = 1.0f;    vertices[3].color = color;    vertices[3].u = 0.0f;    vertices[3].v = 0.0f;    D3D_SetBlendMode(data, renderer->blendMode);    result =        IDirect3DDevice9_SetTexture(data->device, 0,                                    (IDirect3DBaseTexture9 *) 0);    if (FAILED(result)) {        D3D_SetError("SetTexture()", result);        return -1;    }    result =        IDirect3DDevice9_DrawPrimitiveUP(data->device, D3DPT_TRIANGLEFAN, 2,                                         vertices, sizeof(*vertices));    if (FAILED(result)) {        D3D_SetError("DrawPrimitiveUP()", result);        return -1;    }    return 0;}
开发者ID:dodikk,项目名称:iWesnoth,代码行数:71,


示例18: D3D_CreateRenderer

//.........这里部分代码省略.........    }    pparams.BackBufferCount = 1;    pparams.SwapEffect = D3DSWAPEFFECT_DISCARD;    if (window_flags & SDL_WINDOW_FULLSCREEN) {        pparams.Windowed = FALSE;        pparams.FullScreen_RefreshRateInHz =            fullscreen_mode.refresh_rate;    } else {        pparams.Windowed = TRUE;        pparams.FullScreen_RefreshRateInHz = 0;    }    if (flags & SDL_RENDERER_PRESENTVSYNC) {        pparams.PresentationInterval = D3DPRESENT_INTERVAL_ONE;    } else {        pparams.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;    }    /* FIXME: Which adapter? */    data->adapter = D3DADAPTER_DEFAULT;    IDirect3D9_GetDeviceCaps(data->d3d, data->adapter, D3DDEVTYPE_HAL, &caps);    result = IDirect3D9_CreateDevice(data->d3d, data->adapter,                                     D3DDEVTYPE_HAL,                                     pparams.hDeviceWindow,                                     D3DCREATE_FPU_PRESERVE | ((caps.                                      DevCaps &                                      D3DDEVCAPS_HWTRANSFORMANDLIGHT) ?                                     D3DCREATE_HARDWARE_VERTEXPROCESSING :                                     D3DCREATE_SOFTWARE_VERTEXPROCESSING),                                     &pparams, &data->device);    if (FAILED(result)) {        D3D_DestroyRenderer(renderer);        D3D_SetError("CreateDevice()", result);        return NULL;    }    data->beginScene = SDL_TRUE;    data->scaleMode = D3DTEXF_FORCE_DWORD;    /* Get presentation parameters to fill info */    result = IDirect3DDevice9_GetSwapChain(data->device, 0, &chain);    if (FAILED(result)) {        D3D_DestroyRenderer(renderer);        D3D_SetError("GetSwapChain()", result);        return NULL;    }    result = IDirect3DSwapChain9_GetPresentParameters(chain, &pparams);    if (FAILED(result)) {        IDirect3DSwapChain9_Release(chain);        D3D_DestroyRenderer(renderer);        D3D_SetError("GetPresentParameters()", result);        return NULL;    }    IDirect3DSwapChain9_Release(chain);    if (pparams.PresentationInterval == D3DPRESENT_INTERVAL_ONE) {        renderer->info.flags |= SDL_RENDERER_PRESENTVSYNC;    }    data->pparams = pparams;    IDirect3DDevice9_GetDeviceCaps(data->device, &caps);    renderer->info.max_texture_width = caps.MaxTextureWidth;    renderer->info.max_texture_height = caps.MaxTextureHeight;    if (caps.NumSimultaneousRTs >= 2) {        renderer->info.flags |= SDL_RENDERER_TARGETTEXTURE;    }
开发者ID:BabyFlower,项目名称:SurveillanceClientOnMobile,代码行数:66,


示例19: D3D_RenderCopy

static intD3D_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture,               const SDL_Rect * srcrect, const SDL_Rect * dstrect){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    D3D_TextureData *texturedata = (D3D_TextureData *) texture->driverdata;    LPDIRECT3DPIXELSHADER9 shader = NULL;    float minx, miny, maxx, maxy;    float minu, maxu, minv, maxv;    DWORD color;    Vertex vertices[4];    HRESULT result;    if (D3D_ActivateRenderer(renderer) < 0) {        return -1;    }    minx = (float) dstrect->x - 0.5f;    miny = (float) dstrect->y - 0.5f;    maxx = (float) dstrect->x + dstrect->w - 0.5f;    maxy = (float) dstrect->y + dstrect->h - 0.5f;    minu = (float) srcrect->x / texture->w;    maxu = (float) (srcrect->x + srcrect->w) / texture->w;    minv = (float) srcrect->y / texture->h;    maxv = (float) (srcrect->y + srcrect->h) / texture->h;    color = D3DCOLOR_ARGB(texture->a, texture->r, texture->g, texture->b);    vertices[0].x = minx;    vertices[0].y = miny;    vertices[0].z = 0.0f;    vertices[0].color = color;    vertices[0].u = minu;    vertices[0].v = minv;    vertices[1].x = maxx;    vertices[1].y = miny;    vertices[1].z = 0.0f;    vertices[1].color = color;    vertices[1].u = maxu;    vertices[1].v = minv;    vertices[2].x = maxx;    vertices[2].y = maxy;    vertices[2].z = 0.0f;    vertices[2].color = color;    vertices[2].u = maxu;    vertices[2].v = maxv;    vertices[3].x = minx;    vertices[3].y = maxy;    vertices[3].z = 0.0f;    vertices[3].color = color;    vertices[3].u = minu;    vertices[3].v = maxv;    D3D_SetBlendMode(data, texture->blendMode);    if (texturedata->scaleMode != data->scaleMode) {        IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MINFILTER,                                         texturedata->scaleMode);        IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MAGFILTER,                                         texturedata->scaleMode);        data->scaleMode = texturedata->scaleMode;    }    result =        IDirect3DDevice9_SetTexture(data->device, 0, (IDirect3DBaseTexture9 *)                                    texturedata->texture);    if (FAILED(result)) {        D3D_SetError("SetTexture()", result);        return -1;    }    if (shader) {        result = IDirect3DDevice9_SetPixelShader(data->device, shader);        if (FAILED(result)) {            D3D_SetError("SetShader()", result);            return -1;        }    }    result =        IDirect3DDevice9_DrawPrimitiveUP(data->device, D3DPT_TRIANGLEFAN, 2,                                         vertices, sizeof(*vertices));    if (FAILED(result)) {        D3D_SetError("DrawPrimitiveUP()", result);        return -1;    }    if (shader) {        result = IDirect3DDevice9_SetPixelShader(data->device, NULL);        if (FAILED(result)) {            D3D_SetError("SetShader()", result);            return -1;        }    }    return 0;}
开发者ID:BabyFlower,项目名称:SurveillanceClientOnMobile,代码行数:97,


示例20: D3D_RenderCopyEx

static intD3D_RenderCopyEx(SDL_Renderer * renderer, SDL_Texture * texture,               const SDL_Rect * srcrect, const SDL_FRect * dstrect,               const double angle, const SDL_FPoint * center, const SDL_RendererFlip flip){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    D3D_TextureData *texturedata = (D3D_TextureData *) texture->driverdata;    LPDIRECT3DPIXELSHADER9 shader = NULL;    float minx, miny, maxx, maxy;    float minu, maxu, minv, maxv;    float centerx, centery;    DWORD color;    Vertex vertices[4];    HRESULT result;    if (D3D_ActivateRenderer(renderer) < 0) {        return -1;    }    centerx = center->x;    centery = center->y;    if (flip & SDL_FLIP_HORIZONTAL) {        minx = dstrect->w - centerx - 0.5f;        maxx = -centerx - 0.5f;    }    else {        minx = -centerx - 0.5f;        maxx = dstrect->w - centerx - 0.5f;    }    if (flip & SDL_FLIP_VERTICAL) {        miny = dstrect->h - centery - 0.5f;        maxy = -centery - 0.5f;    }    else {        miny = -centery - 0.5f;        maxy = dstrect->h - centery - 0.5f;    }    minu = (float) srcrect->x / texture->w;    maxu = (float) (srcrect->x + srcrect->w) / texture->w;    minv = (float) srcrect->y / texture->h;    maxv = (float) (srcrect->y + srcrect->h) / texture->h;    color = D3DCOLOR_ARGB(texture->a, texture->r, texture->g, texture->b);    vertices[0].x = minx;    vertices[0].y = miny;    vertices[0].z = 0.0f;    vertices[0].color = color;    vertices[0].u = minu;    vertices[0].v = minv;    vertices[1].x = maxx;    vertices[1].y = miny;    vertices[1].z = 0.0f;    vertices[1].color = color;    vertices[1].u = maxu;    vertices[1].v = minv;    vertices[2].x = maxx;    vertices[2].y = maxy;    vertices[2].z = 0.0f;    vertices[2].color = color;    vertices[2].u = maxu;    vertices[2].v = maxv;    vertices[3].x = minx;    vertices[3].y = maxy;    vertices[3].z = 0.0f;    vertices[3].color = color;    vertices[3].u = minu;    vertices[3].v = maxv;    D3D_SetBlendMode(data, texture->blendMode);    // Rotate and translate    ID3DXMatrixStack_Push(data->matrixStack);    ID3DXMatrixStack_LoadIdentity(data->matrixStack);    ID3DXMatrixStack_RotateYawPitchRoll(data->matrixStack, 0.0, 0.0, (float)(M_PI * (float) angle / 180.0f));    ID3DXMatrixStack_Translate(data->matrixStack, (float)dstrect->x + centerx, (float)dstrect->y + centery, (float)0.0);    IDirect3DDevice9_SetTransform(data->device, D3DTS_VIEW, (D3DMATRIX*)ID3DXMatrixStack_GetTop(data->matrixStack));    if (texturedata->scaleMode != data->scaleMode) {        IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MINFILTER,                                         texturedata->scaleMode);        IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MAGFILTER,                                         texturedata->scaleMode);        data->scaleMode = texturedata->scaleMode;    }    result =        IDirect3DDevice9_SetTexture(data->device, 0, (IDirect3DBaseTexture9 *)                                    texturedata->texture);    if (FAILED(result)) {        D3D_SetError("SetTexture()", result);        return -1;    }    if (shader) {//.........这里部分代码省略.........
开发者ID:Deraen,项目名称:ohj2710,代码行数:101,


示例21: D3D_UpdateTexture

static intD3D_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture,                  const SDL_Rect * rect, const void *pixels, int pitch){    D3D_TextureData *data = (D3D_TextureData *) texture->driverdata;    D3D_RenderData *renderdata = (D3D_RenderData *) renderer->driverdata;    if (data->yuv) {        if (SDL_SW_UpdateYUVTexture(data->yuv, rect, pixels, pitch) < 0) {            return -1;        }        UpdateYUVTextureData(texture);        return 0;    } else {#ifdef SDL_MEMORY_POOL_DEFAULT        IDirect3DTexture9 *temp;        RECT d3drect;        D3DLOCKED_RECT locked;        const Uint8 *src;        Uint8 *dst;        int row, length;        HRESULT result;        result =            IDirect3DDevice9_CreateTexture(renderdata->device, texture->w,                                           texture->h, 1, 0,                                           PixelFormatToD3DFMT(texture->                                                               format),                                           D3DPOOL_SYSTEMMEM, &temp, NULL);        if (FAILED(result)) {            D3D_SetError("CreateTexture()", result);            return -1;        }        d3drect.left = rect->x;        d3drect.right = rect->x + rect->w;        d3drect.top = rect->y;        d3drect.bottom = rect->y + rect->h;        result = IDirect3DTexture9_LockRect(temp, 0, &locked, &d3drect, 0);        if (FAILED(result)) {            IDirect3DTexture9_Release(temp);            D3D_SetError("LockRect()", result);            return -1;        }        src = pixels;        dst = locked.pBits;        length = rect->w * SDL_BYTESPERPIXEL(texture->format);        for (row = 0; row < rect->h; ++row) {            SDL_memcpy(dst, src, length);            src += pitch;            dst += locked.Pitch;        }        IDirect3DTexture9_UnlockRect(temp, 0);        result =            IDirect3DDevice9_UpdateTexture(renderdata->device,                                           (IDirect3DBaseTexture9 *) temp,                                           (IDirect3DBaseTexture9 *)                                           data->texture);        IDirect3DTexture9_Release(temp);        if (FAILED(result)) {            D3D_SetError("UpdateTexture()", result);            return -1;        }#else        RECT d3drect;        D3DLOCKED_RECT locked;        const Uint8 *src;        Uint8 *dst;        int row, length;        HRESULT result;        d3drect.left = rect->x;        d3drect.right = rect->x + rect->w;        d3drect.top = rect->y;        d3drect.bottom = rect->y + rect->h;        result =            IDirect3DTexture9_LockRect(data->texture, 0, &locked, &d3drect,                                       0);        if (FAILED(result)) {            D3D_SetError("LockRect()", result);            return -1;        }        src = pixels;        dst = locked.pBits;        length = rect->w * SDL_BYTESPERPIXEL(texture->format);        for (row = 0; row < rect->h; ++row) {            SDL_memcpy(dst, src, length);            src += pitch;            dst += locked.Pitch;        }        IDirect3DTexture9_UnlockRect(data->texture, 0);#endif // SDL_MEMORY_POOL_DEFAULT        return 0;    }//.........这里部分代码省略.........
开发者ID:Alocaly,项目名称:dolphin-player.nextgen,代码行数:101,


示例22: D3D_RenderDrawRects

static intD3D_RenderDrawRects(SDL_Renderer * renderer, const SDL_Rect ** rects,                    int count){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    DWORD color;    int i;    Vertex vertices[5];    HRESULT result;    if (data->beginScene) {        IDirect3DDevice9_BeginScene(data->device);        data->beginScene = SDL_FALSE;    }    D3D_SetBlendMode(data, renderer->blendMode);    result =        IDirect3DDevice9_SetTexture(data->device, 0,                                    (IDirect3DBaseTexture9 *) 0);    if (FAILED(result)) {        D3D_SetError("SetTexture()", result);        return -1;    }    color = D3DCOLOR_ARGB(renderer->a, renderer->r, renderer->g, renderer->b);    for (i = 0; i < SDL_arraysize(vertices); ++i) {        vertices[i].z = 0.0f;        vertices[i].rhw = 1.0f;        vertices[i].color = color;        vertices[i].u = 0.0f;        vertices[i].v = 0.0f;    }    for (i = 0; i < count; ++i) {        const SDL_Rect *rect = rects[i];        vertices[0].x = (float) rect->x;        vertices[0].y = (float) rect->y;        vertices[1].x = (float) rect->x+rect->w-1;        vertices[1].y = (float) rect->y;        vertices[2].x = (float) rect->x+rect->w-1;        vertices[2].y = (float) rect->y+rect->h-1;        vertices[3].x = (float) rect->x;        vertices[3].y = (float) rect->y+rect->h-1;        vertices[4].x = (float) rect->x;        vertices[4].y = (float) rect->y;        result =            IDirect3DDevice9_DrawPrimitiveUP(data->device, D3DPT_LINESTRIP, 4,                                             vertices, sizeof(*vertices));        if (FAILED(result)) {            D3D_SetError("DrawPrimitiveUP()", result);            return -1;        }    }    return 0;}
开发者ID:Alocaly,项目名称:dolphin-player.nextgen,代码行数:64,


示例23: D3D_RenderCopy

static intD3D_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture,               const SDL_Rect * srcrect, const SDL_Rect * dstrect){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    D3D_TextureData *texturedata = (D3D_TextureData *) texture->driverdata;    LPDIRECT3DPIXELSHADER9 shader = NULL;    float minx, miny, maxx, maxy;    float minu, maxu, minv, maxv;    DWORD color;    Vertex vertices[4];    HRESULT result;    if (data->beginScene) {        IDirect3DDevice9_BeginScene(data->device);        data->beginScene = SDL_FALSE;    }    minx = (float) dstrect->x - 0.5f;    miny = (float) dstrect->y - 0.5f;    maxx = (float) dstrect->x + dstrect->w - 0.5f;    maxy = (float) dstrect->y + dstrect->h - 0.5f;    minu = (float) srcrect->x / texture->w;    maxu = (float) (srcrect->x + srcrect->w) / texture->w;    minv = (float) srcrect->y / texture->h;    maxv = (float) (srcrect->y + srcrect->h) / texture->h;    color = D3DCOLOR_ARGB(texture->a, texture->r, texture->g, texture->b);    vertices[0].x = minx;    vertices[0].y = miny;    vertices[0].z = 0.0f;    vertices[0].rhw = 1.0f;    vertices[0].color = color;    vertices[0].u = minu;    vertices[0].v = minv;    vertices[1].x = maxx;    vertices[1].y = miny;    vertices[1].z = 0.0f;    vertices[1].rhw = 1.0f;    vertices[1].color = color;    vertices[1].u = maxu;    vertices[1].v = minv;    vertices[2].x = maxx;    vertices[2].y = maxy;    vertices[2].z = 0.0f;    vertices[2].rhw = 1.0f;    vertices[2].color = color;    vertices[2].u = maxu;    vertices[2].v = maxv;    vertices[3].x = minx;    vertices[3].y = maxy;    vertices[3].z = 0.0f;    vertices[3].rhw = 1.0f;    vertices[3].color = color;    vertices[3].u = minu;    vertices[3].v = maxv;    D3D_SetBlendMode(data, texture->blendMode);    if (texture->blendMode == SDL_BLENDMODE_MASK) {        shader = data->ps_mask;    }    switch (texture->scaleMode) {    case SDL_TEXTURESCALEMODE_NONE:    case SDL_TEXTURESCALEMODE_FAST:        IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MINFILTER,                                         D3DTEXF_POINT);        IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MAGFILTER,                                         D3DTEXF_POINT);        break;    case SDL_TEXTURESCALEMODE_SLOW:        IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MINFILTER,                                         D3DTEXF_LINEAR);        IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MAGFILTER,                                         D3DTEXF_LINEAR);        break;    case SDL_TEXTURESCALEMODE_BEST:        IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MINFILTER,                                         D3DTEXF_GAUSSIANQUAD);        IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MAGFILTER,                                         D3DTEXF_GAUSSIANQUAD);        break;    }    result =        IDirect3DDevice9_SetTexture(data->device, 0, (IDirect3DBaseTexture9 *)                                    texturedata->texture);    if (FAILED(result)) {        D3D_SetError("SetTexture()", result);        return -1;    }    if (shader) {        result = IDirect3DDevice9_SetPixelShader(data->device, shader);        if (FAILED(result)) {//.........这里部分代码省略.........
开发者ID:Alocaly,项目名称:dolphin-player.nextgen,代码行数:101,


示例24: D3D_CreateRenderer

//.........这里部分代码省略.........    } else {        pparams.BackBufferCount = 1;        pparams.SwapEffect = D3DSWAPEFFECT_DISCARD;    }    if (window->flags & SDL_WINDOW_FULLSCREEN) {        pparams.Windowed = FALSE;        pparams.FullScreen_RefreshRateInHz =            window->fullscreen_mode.refresh_rate;    } else {        pparams.Windowed = TRUE;        pparams.FullScreen_RefreshRateInHz = 0;    }    if (flags & SDL_RENDERER_PRESENTVSYNC) {        pparams.PresentationInterval = D3DPRESENT_INTERVAL_ONE;    } else {        pparams.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;    }    data->adapter = D3D_FindAdapter(videodata->d3d, display);    IDirect3D9_GetDeviceCaps(videodata->d3d, data->adapter,                             D3DDEVTYPE_HAL, &caps);    result = IDirect3D9_CreateDevice(videodata->d3d, data->adapter,                                     D3DDEVTYPE_HAL,                                     windowdata->hwnd,                                     (caps.                                      DevCaps &                                      D3DDEVCAPS_HWTRANSFORMANDLIGHT) ?                                     D3DCREATE_HARDWARE_VERTEXPROCESSING :                                     D3DCREATE_SOFTWARE_VERTEXPROCESSING,                                     &pparams, &data->device);    if (FAILED(result)) {        D3D_DestroyRenderer(renderer);        D3D_SetError("CreateDevice()", result);        return NULL;    }    data->beginScene = SDL_TRUE;    /* Get presentation parameters to fill info */    result = IDirect3DDevice9_GetSwapChain(data->device, 0, &chain);    if (FAILED(result)) {        D3D_DestroyRenderer(renderer);        D3D_SetError("GetSwapChain()", result);        return NULL;    }    result = IDirect3DSwapChain9_GetPresentParameters(chain, &pparams);    if (FAILED(result)) {        IDirect3DSwapChain9_Release(chain);        D3D_DestroyRenderer(renderer);        D3D_SetError("GetPresentParameters()", result);        return NULL;    }    IDirect3DSwapChain9_Release(chain);    switch (pparams.SwapEffect) {    case D3DSWAPEFFECT_COPY:        renderer->info.flags |= SDL_RENDERER_PRESENTCOPY;        break;    case D3DSWAPEFFECT_FLIP:        switch (pparams.BackBufferCount) {        case 2:            renderer->info.flags |= SDL_RENDERER_PRESENTFLIP2;            break;        case 3:            renderer->info.flags |= SDL_RENDERER_PRESENTFLIP3;            break;        }
开发者ID:Alocaly,项目名称:dolphin-player.nextgen,代码行数:67,


示例25: D3D_RenderFillRects

static intD3D_RenderFillRects(SDL_Renderer * renderer, const SDL_Rect * rects,                    int count){    D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;    DWORD color;    int i;    float minx, miny, maxx, maxy;    Vertex vertices[4];    HRESULT result;    if (D3D_ActivateRenderer(renderer) < 0) {        return -1;    }    D3D_SetBlendMode(data, renderer->blendMode);    result =        IDirect3DDevice9_SetTexture(data->device, 0,                                    (IDirect3DBaseTexture9 *) 0);    if (FAILED(result)) {        D3D_SetError("SetTexture()", result);        return -1;    }    color = D3DCOLOR_ARGB(renderer->a, renderer->r, renderer->g, renderer->b);    for (i = 0; i < count; ++i) {        const SDL_Rect *rect = &rects[i];        minx = (float) rect->x;        miny = (float) rect->y;        maxx = (float) rect->x + rect->w;        maxy = (float) rect->y + rect->h;        vertices[0].x = minx;        vertices[0].y = miny;        vertices[0].z = 0.0f;        vertices[0].color = color;        vertices[0].u = 0.0f;        vertices[0].v = 0.0f;        vertices[1].x = maxx;        vertices[1].y = miny;        vertices[1].z = 0.0f;        vertices[1].color = color;        vertices[1].u = 0.0f;        vertices[1].v = 0.0f;        vertices[2].x = maxx;        vertices[2].y = maxy;        vertices[2].z = 0.0f;        vertices[2].color = color;        vertices[2].u = 0.0f;        vertices[2].v = 0.0f;        vertices[3].x = minx;        vertices[3].y = maxy;        vertices[3].z = 0.0f;        vertices[3].color = color;        vertices[3].u = 0.0f;        vertices[3].v = 0.0f;        result =            IDirect3DDevice9_DrawPrimitiveUP(data->device, D3DPT_TRIANGLEFAN,                                             2, vertices, sizeof(*vertices));        if (FAILED(result)) {            D3D_SetError("DrawPrimitiveUP()", result);            return -1;        }    }    return 0;}
开发者ID:BabyFlower,项目名称:SurveillanceClientOnMobile,代码行数:73,


示例26: D3D_CreateRenderer

//.........这里部分代码省略.........        pparams.SwapEffect = D3DSWAPEFFECT_COPY;    } else {        pparams.BackBufferCount = 1;        pparams.SwapEffect = D3DSWAPEFFECT_DISCARD;    }    if (window->flags & SDL_WINDOW_FULLSCREEN) {        pparams.Windowed = FALSE;        pparams.FullScreen_RefreshRateInHz =            display->fullscreen_mode.refresh_rate;    } else {        pparams.Windowed = TRUE;        pparams.FullScreen_RefreshRateInHz = 0;    }    if (flags & SDL_RENDERER_PRESENTVSYNC) {        pparams.PresentationInterval = D3DPRESENT_INTERVAL_ONE;    } else {        pparams.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;    }    IDirect3D9_GetDeviceCaps(videodata->d3d, D3DADAPTER_DEFAULT,                             D3DDEVTYPE_HAL, &caps);    result = IDirect3D9_CreateDevice(videodata->d3d, D3DADAPTER_DEFAULT,        /* FIXME */                                     D3DDEVTYPE_HAL,                                     windowdata->hwnd,                                     (caps.                                      DevCaps &                                      D3DDEVCAPS_HWTRANSFORMANDLIGHT) ?                                     D3DCREATE_HARDWARE_VERTEXPROCESSING :                                     D3DCREATE_SOFTWARE_VERTEXPROCESSING,                                     &pparams, &data->device);    if (FAILED(result)) {        D3D_DestroyRenderer(renderer);        D3D_SetError("CreateDevice()", result);        return NULL;    }    data->beginScene = SDL_TRUE;    /* Get presentation parameters to fill info */    result = IDirect3DDevice9_GetSwapChain(data->device, 0, &chain);    if (FAILED(result)) {        D3D_DestroyRenderer(renderer);        D3D_SetError("GetSwapChain()", result);        return NULL;    }    result = IDirect3DSwapChain9_GetPresentParameters(chain, &pparams);    if (FAILED(result)) {        IDirect3DSwapChain9_Release(chain);        D3D_DestroyRenderer(renderer);        D3D_SetError("GetPresentParameters()", result);        return NULL;    }    IDirect3DSwapChain9_Release(chain);    switch (pparams.SwapEffect) {    case D3DSWAPEFFECT_COPY:        renderer->info.flags |= SDL_RENDERER_PRESENTCOPY;        break;    case D3DSWAPEFFECT_FLIP:        switch (pparams.BackBufferCount) {        case 2:            renderer->info.flags |= SDL_RENDERER_PRESENTFLIP2;            break;        case 3:            renderer->info.flags |= SDL_RENDERER_PRESENTFLIP3;            break;        }
开发者ID:dodikk,项目名称:iWesnoth,代码行数:67,



注:本文中的D3D_SetError函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ D4U5函数代码示例
C++ D3DXVec3TransformNormal函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。